1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD Justifier un texte sous android

Discussion dans 'Windev Mobile' créé par Cefaliyon, Mar 6, 2020.

  1. Cefaliyon

    Cefaliyon New Member

    Inscrit:
    Jan 23, 2018
    Messages:
    20
    J'aime reçus:
    11
    Bonjour,

    J'essaie de justifier un texte dans un libellé multiligne et même si sous le "testeur" sur mon PC cela fonctionne, le résultat n'est pas le même quand je déploie sur le téléphone car le texte n'est pas justifié.

    Existe-t-il un moyen de le faire ?

    Merci d'avance.
     
    Tags:
  2. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    Tu ne pas le faire sur un libellé pour android mais tu peux le faire dans un champ html voir

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  3. Cefaliyon

    Cefaliyon New Member

    Inscrit:
    Jan 23, 2018
    Messages:
    20
    J'aime reçus:
    11

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Tu ne pas le faire sur un libellé pour android mais tu peux le faire dans un champ html voir

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Cliquez pour agrandir...
    Meri pour ton interêt

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,
    Je ne m'y connais pas trop en html et css. Alors comment utiliser le champ html ?
    J'ai en fait du texte dans une police partiliculière (langue locale : moore) stocké dans la base de données dans une rubrique de type Memo Texte unicode.
    Comment l'afficher en HTML ?
    NB : J'ai importé la police dans le Projet.
    Merci d'avance.
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    Là tu parles de 2 problème différents
    1 l'affichage en justifier
    2 l'affichage dans une police particulière sous android dans un champ HTML

    Pour le premier point
    dans ton champ HTML tu met un texte comme ceci par exemple :
    HTML:

    <

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    >

    <

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    charset="utf-8" />

    <

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ></

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    >

    <

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    type="text/css">

    html{color:#000;background:#FFF;}
    p {
      font-size: 1.5em;
      padding: 10px;
      width: 95%;
      margin: 10px auto;
      text-align: justify;
    }
    </

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    >

    </

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    >

    <

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    >

    <

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    >
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam laoreet
    sed felis quis euismod. Etiam auctor dolor diam, ut aliquet metus sollicitudin
    malesuada. Integer nec purus tortor. Vestibulum ac ornare metus, eget viverra nisl.
    Mauris accumsan urna et massa cursus vehicula. Suspendisse tortor enim, interdum vel
    tristique pellentesque lectus. Suspendisse hendrerit, justo at ullamcorper pellente
    lectus lacus ullamcorper risus, eu suscipit magna arcu ac lorem.
    In porta augue sed lectus mollis placerat. Nulla non orci viverra, semper metus et,
    condimentum ligula. Donec facilisis aliquet purus, eget semper turpis maximus ac.
    Nulla pellentesque ipsum enim, nec luctus lorem efficitur et.
    Mauris dapibus metus a varius tristique. In semper lectus eget risus euismod,
    ac vehicula massa feugiat. Integer scelerisque, sem a facilisis porta, augue lacus
    venenatis orci, id tincidunt quam lacus tincidunt tortor. Fusce dapibus varius tort
    </

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    >

    </

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    >

    </

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    >

     
    J'ai mis mon texte dans un paragraphe avec la balise P et dans mon css j'ai dis que je le souhaite justifié.

    pour ta deuxième question, il se trouve que j'ai mis un tutoriel a ce sujet sur les ressources du site
    et il faut savoir que pcsoft renomme légèrement les fichiers quand il les insères dans l'apk.
    il faut donc que tu créer un apk et que tu le décompresse (c'est en réalité un zip) et tu trouveras le fichier dans le sous répertoire assets.
    Tu récupéras le bon nom.
    Ensuite sur la ligne </style> tu rajoute
    HTML:
    @font-face { font-family: Font1; src: url('file:///android_asset/moore1_8.ttf'); }
    .divA{ font-family: Font1;}
     
    En supposant que moore1_8.ttf soit le bon nom

    Tu auras alors ton texte dans la bonne police et en justifié
    Il faudra bien sur remplacé le texte entre les balises <p> et </p> par ton texte en utf8.
     
    michel apprécie ceci.
  • Cefaliyon

    Cefaliyon New Member

    Inscrit:
    Jan 23, 2018
    Messages:
    20
    J'aime reçus:
    11
    Merci

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Effectivement j'ai deux problèmes. Le premier, à savoir justifier le texte, est résolu.
    Malheureusement, il n'affiche pas mon texte avec la bonne police. Je te montre ce que j'ai fait :
    Le nom de la police :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Le code HTML :
    [windev]PROCÉDURE AffecteVariable(Contenu) : chaîne

    Variable est une chaîne = [
    <html>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
    html{color:

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ;background:

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ;}
    p {
    font-size: 1.5em;
    padding: 10px;
    width: 95%;
    margin: 10px auto;
    text-align: justify;
    }
    @font-face { font-family: Font1; src: url('file:///android_asset/moore2_2_36.ttf'); }
    .divA{ font-family: Font1;}</style>
    </head>
    <body>
    <p>[%Contenu%]
    </p>
    </body>
    </html>
    ]
    RENVOYER Variable[/windev]

    Bien à toi.
     

    Fichiers attachés:

  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    [%Contenu%]
    Ne me paraît pas bon j'aurais plutôt utiliser

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    essaie en remplaçant
    @font-face { font-family: Font1; src: url('file:///android_asset/moore2_2_36.ttf'); }
    .divA{ font-family: Font1;}

    par
    @font-face { font-family:'Moore'; src: url('file:///android_asset/moore2_2_36.ttf'); }

    Sinon rajoute
    body {
    font-family: Font1;
    text-align: justify;
    }
    en dessous de la ligne @font-face si tu n'as rien modifier
    ou
    body {
    font-family: 'Moore';
    text-align: justify;
    }
    si tu le modifie
     
    #7 popoy, Mar 7, 2020
    Dernière édition: Mar 7, 2020
  • redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226
    Bonjour

    pour justifier le texte j'utilise setJustificationMode en java (a testé ) sur mon appareil android 9 sa fonctionne bien
    Code (Text):

    import android.widget.TextView;
    import android.graphics.Typeface;
    import static android.text.Layout.JUSTIFICATION_MODE_INTER_WORD;
    public static void JustifierLibelle()
    {
        TextView myTextView;
        myTextView = (TextView) getView ("LIB_Hello");
        myTextView.setJustificationMode(JUSTIFICATION_MODE_INTER_WORD);
       
    }
     
    LIB_Hello c'est le nom de libelle contient le texte a justifier
     
    #8 redha2010, Mar 7, 2020
    Dernière édition: Mar 7, 2020
    Man et popoy aiment ça.
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    Merci

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,
    Tu as fourni une réponse pour les libellés.
    Moi pour les champs Html.
     
    redha2010 apprécie ceci.
  • redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226
    modification de la fonction java pour justifier et modifier le font :)
    Code (Text):

    import android.widget.TextView;
    import android.graphics.Typeface;
    import static android.text.Layout.JUSTIFICATION_MODE_INTER_WORD;
    public static void JustifierLibelle()
    {
        TextView myTextView;
        myTextView = (TextView) getView ("LIB_Hello");
        myTextView.setJustificationMode(JUSTIFICATION_MODE_INTER_WORD);
        Typeface face = Typeface.createFromAsset(getApplicationContext().getAssets(),"moore2_2_36.ttf");
        myTextView.setTypeface(face);

    }
     
  • Cefaliyon

    Cefaliyon New Member

    Inscrit:
    Jan 23, 2018
    Messages:
    20
    J'aime reçus:
    11

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    essaie en remplaçant
    @font-face { font-family: Font1; src: url('file:///android_asset/moore2_2_36.ttf'); }
    .divA{ font-family: Font1;}

    par
    @font-face { font-family:'Moore'; src: url('file:///android_asset/moore2_2_36.ttf'); }

    Sinon rajoute
    body {
    font-family: Font1;
    text-align: justify;
    }
    en dessous de la ligne @font-face si tu n'as rien modifier
    ou
    body {
    font-family: 'Moore';
    text-align: justify;
    }
    si tu le modifie
    Cliquez pour agrandir...
    J'ai utilisé par fini
    @font-face { font-family:'Moore'; src: url('file:///android_asset/moore2_2_36.ttf'); }
    body {
    font-family: 'Moore';
    text-align: justify;
    }
    Tout marche très bien. Merci pour ton aide.
     
  • Cefaliyon

    Cefaliyon New Member

    Inscrit:
    Jan 23, 2018
    Messages:
    20
    J'aime reçus:
    11

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    modification de la fonction java pour justifier et modifier le font :)
    Code (Text):

    import android.widget.TextView;
    import android.graphics.Typeface;
    import static android.text.Layout.JUSTIFICATION_MODE_INTER_WORD;
    public static void JustifierLibelle()
    {
        TextView myTextView;
        myTextView = (TextView) getView ("LIB_Hello");
        myTextView.setJustificationMode(JUSTIFICATION_MODE_INTER_WORD);
        Typeface face = Typeface.createFromAsset(getApplicationContext().getAssets(),"moore2_2_36.ttf");
        myTextView.setTypeface(face);

    }
    Cliquez pour agrandir...
    Bonjour

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Très interessant. J'ai essayé mais j'ai une erreur à la génération de l'APK.
    J'ai créé une procedure Globale JustifieTexte que J'appelle quand je veux justifier un champ libellé.
    Code (Text):
    public static void JustifieTexte(final String sChamp)
    {
        import android.widget.TextView;
        import android.graphics.Typeface;
        import static android.text.Layout.JUSTIFICATION_MODE_INTER_WORD;
        public static void JustifierLibelle()
        {
            TextView myTextView;
            myTextView = (TextView) getView (sChamp);
            myTextView.setJustificationMode(JUSTIFICATION_MODE_INTER_WORD);
            Typeface face = Typeface.createFromAsset(getApplicationContext().getAssets(),"moore2_2_36.ttf");
            myTextView.setTypeface(face);
           
        }
    }
     
    Voici l'erreur à la génération de l'APK :
    Echec de la création de l'application Android <C:\Mes Projets Mobile\Wend Pegr Nooma\Exe\WPN.apk>.


    Ligne de commande : "C:\Program Files\Java\jdk1.8.0_241\bin\java.exe" -Duser.dir="C:\Mes Projets Mobile\Wend Pegr Nooma\Android\Gen" "-Dorg.gradle.appname=C:\Mes Projets Mobile\Wend Pegr Nooma\Android\Gen" -classpath "C:\windev mobile 24\Personnel\Android\Gradle\lib\gradle-launcher-4.4.1.jar" org.gradle.launcher.GradleMain assembleDebug -b "C:\Mes Projets Mobile\Wend Pegr Nooma\Android\Gen\build.gradle"


    Erreur retournée :
    :compileDebugJavaWithJavacC:\Mes Projets Mobile\Wend Pegr Nooma\Android\Gen\src\com\gesb\wpn\wdgen\GWDCPCOL_ProceduresGlobales.java:112: error: illegal start of expression
    public static void JustifierLibelle()
    ^
    C:\Mes Projets Mobile\Wend Pegr Nooma\Android\Gen\src\com\gesb\wpn\wdgen\GWDCPCOL_ProceduresGlobales.java:112: error: illegal start of expression
    public static void JustifierLibelle()
    ^
    C:\Mes Projets Mobile\Wend Pegr Nooma\Android\Gen\src\com\gesb\wpn\wdgen\GWDCPCOL_ProceduresGlobales.java:112: error: ';' expected
    public static void JustifierLibelle()
    ^
    C:\Mes Projets Mobile\Wend Pegr Nooma\Android\Gen\src\com\gesb\wpn\wdgen\GWDCPCOL_ProceduresGlobales.java:112: error: ';' expected
    public static void JustifierLibelle()
    ^
    4 errors
    FAILED

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':compileDebugJavaWithJavac'.
    > Compilation failed; see the compiler error output for details.

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

    * Get more help at

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    BUILD FAILED in 4s
    16 actionable tasks: 6 executed, 10 up-to-date
     
  • redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226
    Imports ne doit pas etre dans une procedure
    Don copier la procedure et colle la apres avoir changer en java
     
  • redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    NB
    tu dois remplacer LIB_Hello par le nom de libellé dans votre projet
     
  • Cefaliyon

    Cefaliyon New Member

    Inscrit:
    Jan 23, 2018
    Messages:
    20
    J'aime reçus:
    11
    Merci

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    . Tout marche très Bien.
    Merci à toi aussi

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    .
     
  • vendee85

    vendee85 New Member

    Inscrit:
    Mar 22, 2020
    Messages:
    19
    J'aime reçus:
    5

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour

    pour justifier le texte j'utilise setJustificationMode en java (a testé ) sur mon appareil android 9 sa fonctionne bien
    Code (Text):

    import android.widget.TextView;
    import android.graphics.Typeface;
    import static android.text.Layout.JUSTIFICATION_MODE_INTER_WORD;
    public static void JustifierLibelle()
    {
        TextView myTextView;
        myTextView = (TextView) getView ("LIB_Hello");
        myTextView.setJustificationMode(JUSTIFICATION_MODE_INTER_WORD);
       
    }
     
    LIB_Hello c'est le nom de libelle contient le texte a justifier
    Cliquez pour agrandir...

    Bonjour,

    Merci, pour ce lien.

    J'ai essayé d'intégrer le code JAVA dans une procédure globale en selectionnant bien le type de langage sur JAVA mais quand j'appel la procédure j'ai cette erreur :

    Erreur :Le langage de la procédure 'texte_justifier' est incompatible avec la cible d'exécution.

    J'ai donc appelé la procédure avec

    [windev] <COMPILE SI TypeConfiguration=iOS>

    <SINON>
    texte_justifier()
    <FIN>[/windev]

    Maintenant lors de l'appel de la procédure j'ai ce problème :

    Message=Erreur interne.
    Message système=android.widget.TextView.setJustificationMode
    Traitement=Initialisation de FEN_actu
    Pile WLangage=Initialisation de FEN_actu
    Clic gauche sur FEN_Accueil.BTN_SansNom1
    Pile Java=com.equicomm.cre_pays_de_la_loire.wdgen.GWDCPCOL_notif.texte_justifier(GWDCPCOL_notif.java:1066)
    com.equicomm.cre_pays_de_la_loire.wdgen.GWDCPCOL_notif.fWD_recup_actu(GWDCPCOL_notif.java:581)
    com.equicomm.cre_pays_de_la_loire.wdgen.GWDFFEN_actu.init(GWDFFEN_actu.java:1568)
    fr.pcsoft.wdjava.ui.m.executerTraitement(Unknown Source)
    fr.pcsoft.wdjava.ui.n.executerTraitement(Unknown Source)
    fr.pcsoft.wdjava.ui.champs.j.executerTraitement(Unknown Source)
    fr.pcsoft.wdjava.ui.champs.fenetre.a.executerTraitement(Unknown Source)
    fr.pcsoft.wdjava.ui.champs.fenetre.WDFenetre.executerTraitement(Unknown Source)
    fr.pcsoft.wdjava.ui.m.a(Unknown Source)
    fr.pcsoft.wdjava.ui.m.appelPCode(Unknown Source)
    fr.pcsoft.wdjava.ui.n.appelPCode(Unknown Source)
    fr.pcsoft.wdjava.ui.champs.i.appelPCode(Unknown Source)
    fr.pcsoft.wdjava.ui.champs.fenetre.c.run(Unknown Source)
    android.os.Handler.handleCallback(Handler.java:73:relievedface:
    android.os.Handler.dispatchMessage(Handler.java:95)
    fr.pcsoft.wdjava.core.utils.ac.a(Unknown Source)
    fr.pcsoft.wdjava.ui.champs.fenetre.WDFenetre.ouvre(Unknown Source)
    fr.pcsoft.wdjava.ui.champs.fenetre.a.ouvre(Unknown Source)
    fr.pcsoft.wdjava.ui.champs.fenetre.a.ouvrirFenetre(Unknown Source)
    fr.pcsoft.wdjava.action.WDActionPredefinie.executeActionPredefinie(Unknown Source)
    com.equicomm.cre_pays_de_la_loire.wdgen.GWDFFEN_Accueil$GWDBTN_SansNom1.clicSurBoutonGauche(GWDFFEN_Accueil.java:400)
    fr.pcsoft.wdjava.ui.n.executerTraitement(Unknown Source)
    fr.pcsoft.wdjava.ui.champs.j.executerTraitement(Unknown Source)
    fr.pcsoft.wdjava.ui.m.a(Unknown Source)
    fr.pcsoft.wdjava.ui.m.appelPCode(Unknown Source)
    fr.pcsoft.wdjava.ui.n.appelPCode(Unknown Source)
    fr.pcsoft.wdjava.ui.champs.i.appelPCode(Unknown Source)
    fr.pcsoft.wdjava.ui.n.appelPCode_TLM(Unknown Source)
    fr.pcsoft.wdjava.ui.champs.bouton.g.onClick(Unknown Source)
    android.view.View.performClick(View.java:4508)
    android.view.View$PerformClick.run(View.java:18675)
    android.os.Handler.handleCallback(Handler.java:73:relievedface:
    android.os.Handler.dispatchMessage(Handler.java:95)
    android.os.Looper.loop(Looper.java:136)
    android.app.ActivityThread.main(ActivityThread.java:5590)
    java.lang.reflect.Method.invokeNative(Native Method)
    java.lang.reflect.Method.invoke(Method.java:515)
    com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
    com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
    dalvik.system.NativeStart.main(Native Method)
    Thread=id=1
    name=main
    priority=5
    groupName=main

    Comment régler ce problème, de quoi cela vient-il ? Faut-il importer une librairie Java, je suis dsl je ne maitrise vraiement pas Java.

    Je vous remercie d'avance pour votre aide. Bonne journée
     
  • vendee85

    vendee85 New Member

    Inscrit:
    Mar 22, 2020
    Messages:
    19
    J'aime reçus:
    5
    Quelqu'un pour m'aider sur ce problème ? Merci ! ;)
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    Le champ html, tu ne l'as pas testé?
     
  • vendee85

    vendee85 New Member

    Inscrit:
    Mar 22, 2020
    Messages:
    19
    J'aime reçus:
    5
    Le libellé est dans une ZR, donc après je ne peux pas mettre un champ HTML dans la ZR et si le texte est plus long que le champ HTML, l'utilisateur sera obligé de scroller le champ qui est lui même dans une zr
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    Pourquoi l'erreur est dans
    Initialisation de FEN_actu
    Et
    Initialisation de FEN_actu
    Clic gauche sur FEN_Accueil.BTN_SansNom1
    ?
    De plus, tu écris que ton libellé est dans une zr.
    Comment fais tu pour que ton code java atteigne le bon libellé de ta zr?
    Qui dit zr , dit que le même libellé est répété.
    As-tu mis un getview ?
    Car ton code wl c'est seulement texte_justifier().
    En plus tu n'as pas mis ton code java.
    Il est clair que ton code wl est mal placé.
    Personnellement, j'aurais mis dans a chaque affichage d'une ligne de zr.
    Et j'aurais sûrement mis le nom complet du champ en paramètre de la fonction Java.
     
    michel apprécie ceci.
  • Partager cette page

    Chargement...