IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Comment créer sa barre de titre personnalisée ?


Sujet :

Android

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Par défaut Comment créer sa barre de titre personnalisée ?
    Bonjour à tous!

    Voilà, je souhaiterais créer une barre de titre personnalisée..
    La barre dont je parle est celle affichée en dessous de celle de notifications..(horloge, batterie etc..)

    Merci à vous et bonnes fêtes de fin d'année !

  2. #2
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Tu as un bon exemple dans l'APIdemos du SDK de Google.

    Tu regarderas le fichier CustomTitle.java qui fait ce que tu souhaites. Par ailleurs, tu peux modifier la couleur du texte affiché.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Par défaut
    Merci à toi!

    Par contre, quand je met un background sur celle-ci, il ne s'affiche pas entièrement..

    Il ne manque pas grand chose pourtant...

    Voici le Layout de ma titlebar perso :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    <?xml version="1.0" encoding="utf-8"?>
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_title">
     
    </LinearLayout>

  4. #4
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Perso je n'avais pas réussi à faire un background. J'avais juste réussi à changer la couleur du texte.

    Le xml semble bon, est-ce que ton bg_title est correct ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Par défaut
    Citation Envoyé par cad13 Voir le message

    Le xml semble bon, est-ce que ton bg_title est correct ?
    Oui j'ai même essayé avec un fond d'écran de 800x480 (taille d'écran d'un Galaxy S) et toujours la même chose il me manque peut-être 5 pixels de chaque côté et 1 pixel en bas...

    Alors je vais essayer avec la fonction Shape pour voir et je ferai un petit retour..

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Par défaut
    Bon alors je fais un petit retour car la fonction shape envoie au même résultat...

    toujours ce petit écart...

    Si quelqu'un à la solution...

    Merci pour vôtre aide !

  7. #7
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Sinon, as-tu essayé la bibliothèque Greendroid ?

    Elle te permet d'avoir une barre d'outils très bien faite, ce qui répondra peut-être à tes besoins ?

    http://android.cyrilmottier.com/

  8. #8
    Jay
    Jay est déconnecté
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2002
    Messages : 124
    Par défaut
    Bonjour,

    Regarde cette réponse :

    http://www.developpez.net/forums/d10...jours-visible/

    Cordialement,

  9. #9
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Exact, tu peux aussi créer ta propre barre (en supprimant la barre de titre et en créant un linear layout que tu mets dans un include dans tes autres layouts)

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Par défaut
    Merci pour vos réponses..
    Pour ce qui est de GreenDroid, je n'arrive pas à l'implémenter à mon app...
    Je n'ai jamais utilisé de library tierce....
    Voici un Screenshot de mon application depuis l'émulateur



    Donc j'ai déjà une Actionbar, mais je voudrai modifier l'apparence de la barre de titre tout en gardant la possibilité d'afficher le texte contenu dans celle d'origine (en l’occurrence le slash dans ce sreenshot).

    Alors je peux faire un Theme.NoTitlebar et recréer une Actionbar celà ne me poserai pas de problème mais je fais comment pour récupérer le texte de la barre de titre d'origine??

    Merci encore!

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Par défaut
    Bon alors j'ai du nouveau !
    Alors si cela peut aider, voici comment j'ai procédé :

    colors.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="utf-8"?>
    <resources>   
        <color name="titlebackgroundcolor">@drawable/bg_actionbar_title</color>
    </resources>
     
    (au lieu d'utiliser une couleur, j'ai indiqué le chemin de mon fod pour la barre de titre)
    themes.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="customTheme" parent="android:Theme"> 
            <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>   
        </style> 
    </resources>
     
    (je crée un thème personnalisé)
    styles.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="utf-8"?>
    <resources> 
       <style name="WindowTitleBackground">     
            <item name="android:background">@color/titlebackgroundcolor</item>                   
        </style>
    </resources>
    Dans le Manifest, j'y ajoute mon thème pour ma barre de titre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <activity android:theme="@style/customTheme" android:screenOrientation="portrait" android:configChanges="orientation" android:name="LogicielGrille"></activity>
    Et dans mon activity principale, je déclare dans le OnCreate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public void onCreate(Bundle saveInstanceState) {
        super.onCreate(saveInstanceState);
     
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
     
        this.setContentView(R.layout.logicielgrille);
     
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle);
    Maintenant ce que je cherche à faire, c'est récupérer le texte qu'il y avait dans la barre de titre d'origine alors si quelqu'un pouvait m'aider à ce sujet ce serait cool de sa part !

    Screenshot depuis l'émulateur :


  12. #12
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Sympa les explications, ça peut servir...

    Pour récupérer le texte de la barre de titre, je ferais comme çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String Titre = (String) this.getTitle();

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Par défaut
    Citation Envoyé par cad13 Voir le message
    Sympa les explications, ça peut servir...

    Pour récupérer le texte de la barre de titre, je ferais comme çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String Titre = (String) this.getTitle();
    Tout d'abord merci pour ta réponse
    Je viens d'essayer et cela ne marche pas...
    Rien ne s'affiche dans ma barre de titre perso...

    Mon onCreate pour l'essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void onCreate(Bundle saveInstanceState) {
        super.onCreate(saveInstanceState);
     
        String Titre = (String) this.getTitle();
     
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);    
        this.setContentView(R.layout.logicielgrille);
     
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle);
        setTitle(Titre);
    Même en utilisant un texte perso genre setTitle("abcdefgh");
    rien ne s'affiche alors je n'y comprends plus rien...

  14. #14
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    En fait,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String titre = (String) getTitle ();
    ne fait que retourner le nom de l'application, et effectivement, le setTitle n'a pas d'effet chez moi non plus.

    je n'ai pas d'idée, mais pour la solution, je continue à penser que de faire ta propre barre de titre résoudrait tes soucis. Pour masquer celle par défaut, il faut ajouter dans ton Manifest
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <activity android:name=".Toto"
          android:theme="@android:style/Theme.NoTitleBar" >
    Après tu crées un linear layout que tu places avec un iclude dans chacun des tes autres layouts.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Par défaut
    Bon je reviens avec des bonnes nouvelles!

    J'ai réussiii!

    Bon en fait dans le onCreate j'ai effacé les lignes en rouges suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void onCreate(Bundle saveInstanceState) {
        super.onCreate(saveInstanceState);
     
        String Titre = (String) this.getTitle();
     
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);    
        this.setContentView(R.layout.logicielgrille);
        
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle);
        setTitle(Titre);
        setTitleColor(Color.CYAN);
    J'ai laissé le Manifest comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <activity android:theme="@style/customTheme" android:screenOrientation="portrait" android:configChanges="orientation" android:name="LogicielGrille"></activity>
    Par contre j'aimerai bien que tu m'aides à intégrer GreenDroid dans mon application car je n'y arrive pas du tout et il y a des fonctionnalités( QuickActionBar par exemple) qui iraient bien avec mon appli.
    Alors si tu pouvais m'aider pas à pas ce serait génial de ta part!

  16. #16
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Dans la librairie Greendroid, il y a un exemple qui est donné, en le regardant, c'est assez simple à copier...

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Par défaut
    Une fois télécharger, je dois l'extraire où l'archive?
    Je dois créer un dossier GreenDroid quelque part?
    Merci à toi

  18. #18
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Je ne me rappelle plus trop, mais c'est expliqué sur le site.
    Tout est détaillé pour l'installation et l'exemple.

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Par défaut
    Bon et bien je n'y arrive pas...

    Je crée un nouveau projet, je coche la case "is library", je clique sur "Apply"
    je fais un copier-coller des fichiers décompressés dans mon nouveau projet et tout est marqué avec erreur...
    Alors je ne sais pas comment faire...
    Tant pis pour les QuickActionBar...

  20. #20
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Je crois que l'exemple s'appelle GDCatalog...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/06/2007, 19h53
  2. Réponses: 3
    Dernier message: 20/02/2007, 12h09
  3. Réponses: 1
    Dernier message: 19/07/2006, 18h08
  4. [SWING] Comment redessiner la barre de titre d'une JFrame?
    Par rprom1 dans le forum Agents de placement/Fenêtres
    Réponses: 14
    Dernier message: 21/06/2006, 17h18
  5. Comment créer des barres de Menu ?
    Par MoKo dans le forum IHM
    Réponses: 5
    Dernier message: 30/07/2003, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo