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 :

Couleur par défaut d'une ProgressBar ?


Sujet :

Android

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Couleur par défaut d'une ProgressBar ?
    Bonjour à tous,

    Je réalise une application Android dans laquelle je voudrais donner au texte affiché par un widget TextView la même couleur que celle utilisée par défaut dans une ProgressBar que j'utilise dans la même vue.

    Je ne souhaite pas imposer une couleur particulière mais uniquement que le texte du TextView s'affiche dans la même couleur que la ProgressBar...

    Y a-t-il un moyen d'obtenir la valeur de la couleur par défaut d'une ProgressBar ?

    Merci par avance pour votre aide...

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    En jouant avec les styles et les thèmes du téléphone ça doit être possible, mais je pense qu'il faut farfouiller un peu

  3. #3
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 815
    Points : 18 729
    Points
    18 729
    Par défaut
    Je ne suis pas sûre de comprendre exactement ce que tu veux.

    Mais si tu veux connaître les couleurs utilisés dans les ProgressBar regarde les fichiers dans :
    android-sdks\platforms\android-??\data\res\drawable :

    Il y a des fichiers comme :
    progress_horizontal.xml

    En fait avec Android tu peux faire facilement de la transparence, la couleur noir c'est ça : #000000
    Tu peux mettre un nombre hexadécimal devant je crois, par exemple :
    #60000000, là j'ai rajouté 60 ce qui créer un effet de transparence et ce n'est pas le même que celui que j'aurai obtenu en mettant 40 ou encore ff.

    Peut être que le fichier que je t’indique n'est pas le bon, en tout cas il faut chercher par là je pense.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Android fait du ARGB pour les code couleurs hexa, oui.

    Après ... il semble très difficile de prendre le jeu de couleurs par défaut du téléphone. Souvent, ce sont des attributs propres à l'API non-documentée :/

    C'est généralement des ressources de la forme ?android:, de ce que j'ai pu voir.

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut pas si simple...
    Merci pour vos réponses, elles confirment que la manip n'est pas si simple... et pas vraiment documentée...

    En fait, en mettant mon appli au point, j'ai constaté que la ProgressBar s'affiche en orange dans l'émulateur... mais en vert sur mon smartphone (Samsung Galaxy S2).

    Et c'est parce que je veux afficher un texte dans la même couleur (car il est lié à la progression en question) que je cherche à obtenir la couleur en cours de la ProgressBar...

    J'aurais voulu éviter d'avoir à définir un style rien que pour ça... et laisser la couleur d'origine de la ProgressBar me convenait bien...

    Si quelqu'un a une idée, je suis preneur...

    Merci d'avance...

  6. #6
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 815
    Points : 18 729
    Points
    18 729
    Par défaut
    Je crois que j'ai compris, en fait ce qui te gène c'est que sur tout les téléphones la ProgressBar n'a pas la même couleur !

    Tu dois pouvoir simplement forcer le style d'une ProgressBar, je suppose qu'il suffit juste de copier les bons drawable dans l'SDK et assigner le style à la ProgressBar.

    Dans ton layout en XML, quand tu mets une ProgressBar tu mets quelque chose comme ça à l'intérieur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    style="@android:style/Widget.ProgressBar.Small"
    Là ça va chercher le style propre au device, puisque ça commence par @android:, ben si t'avais le fichier dans ton projet tu pourras faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    style="@style/Widget.ProgressBar.Small"
    Et là sur tout les devices la ProgressBar serait la même.

  7. #7
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par thierrybenji Voir le message
    Je crois que j'ai compris, en fait ce qui te gène c'est que sur tout les téléphones la ProgressBar n'a pas la même couleur !
    Non, justement, ce phénomène ne me gène pas !

    Je voudrais juste pouvoir donner à un texte la même couleur que celle de la ProgressBar, que celle-ci soit rouge, bleue, verte ou jaune...

    L'idée est de laisser à la ProgressBar sa couleur par défaut... mais de pouvoir la retrouver pour l'appliquer à un texte...

    Cette manip est tout à fait accessible dans de nombreux autres environnements... mais paraît compliquée sous Android !!

    Je suis étonné que la classe ProgressBar ne propose pas tout simplement une méthode du genre getColor() qui permette d'obtenir cette couleur...

    Je pense donc que je vais finir par utiliser un style... mais ça me paraît vraiment lourd pour si peu...

  8. #8
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 815
    Points : 18 729
    Points
    18 729
    Par défaut
    Ah ok !

    Non ben ça doit se faire, faut juste retrouver la couleur qui t’intéresses.
    Il y a en plusieurs dans le style d'une ProgressBar, tu peux peut être commencer par :
    Peut être que c'est un début qui t’amèneras à la couleur que tu recherches.

    Edit : non en fait ça retourne null.
    Cela dit je pense qu'il existe une manière de récupérer le style, je vais essayer de regarder ça.

    Peut être en regardant de ce côté :
    http://android-developers.blogspot.f...mutations.html

    Déjà il faut récupéré le "style" qu'utilise le téléphone.
    Ensuite il faut redescendre jusqu'à la bonne couleur.

  9. #9
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Oui, j'avais bien repéré cette méthode getProgressDrawable() ...

    Mais elle retourne un objet Drawable dans lequel j'ai du mal à trouver une couleur...

  10. #10
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    D'apres https://github.com/android/platform_...ues/styles.xml

    Widget.ProgressBar.Horizontal utilise @android:drawable/progress_horizontal

    Un petit tour dans le ficher à coté:
    https://github.com/android/platform_...horizontal.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <item android:id="@android:id/progress">        
        <clip>            
            <shape>                
                <corners android:radius="5dip" />                
                <gradient
                      android:startColor="#ffffd300"
                      android:centerColor="#ffffb600"
                      android:centerY="0.75"
                      android:endColor="#ffffcb00"
                      android:angle="270"               
                />            
            </shape>        
        </clip>    
    </item>
    Il devrait bien, programmatiquement, être possible de récupérer le gradient... non ?

  11. #11
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    En espérant que les surcouches constructeur et opérateur éventuelle n'ont fait que changer les valeurs hexa et n'ont pas touchées à ce fichier ou à sa mise en oeuvre.

  12. #12
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    OK, merci à tous pour les différentes pistes que vous m'avez proposées, elles correspondent bien à ce que j'ai pu trouver de mon côté, en particulier l'utilisation du style de base @android:drawable/progress_horizontal ...

    Je creuse la question... et reviens poster le résultat de mes investigations...

Discussions similaires

  1. [C#] Paramètre par défaut dans une fonction
    Par RobinJulie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/01/2012, 14h07
  2. Réponses: 5
    Dernier message: 11/10/2008, 22h54
  3. Réponses: 2
    Dernier message: 06/07/2004, 17h46
  4. Valeur par défaut dans une table objet
    Par Ricky81 dans le forum Oracle
    Réponses: 12
    Dernier message: 18/03/2004, 11h52
  5. Réponses: 2
    Dernier message: 18/10/2003, 14h42

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