bouton personnalisé: changer de style quand la touche est pressée
J'ai créé un bouton avec un peu d'ombre à l'aide d'un style:
<style name="test">
<item name="android:shadowColor">#FFFFFF</item>
<item name="android:shadowRadius">1</item>
<item name="android:shadowDx">1</item>
<item name="android:shadowDy">1</item>
</style>
Cela s'applique une ombre blanche sur le bouton du texte dans son état normal. Je me demandais juste si quelqu'un sait si il existe un moyen de supprimer cette ombre lorsque le bouton est pressé de l'état. En d'autres termes, est-il un moyen d'appliquer un autre style lorsque le bouton est dans un autre (pressé) de l'état?
Merci d'avance!
modifier
bold.xml:
<resources>
<style name="bold_text">
<item name="android:textStyle">bold</item>
</style>
</resources>
button.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/test_pressed"
style="@style/bold_text"
android:state_pressed="true"/>
<item android:drawable="@drawable/test_focused"
android:state_focused="true"/>
<item android:drawable="@drawable/test_normal"/>
</selector>
ma mise en page:
<Button
...
android:background="@drawable/button"/>
OriginalL'auteur user440308 | 2010-09-10
Vous devez vous connecter pour publier un commentaire.
Vous voulez un ColorStateList http://developer.android.com/guide/topics/resources/color-list-resource.html
Cela peut faire plus que simplement des couleurs, vous pouvez faire tout un drawable défini en xml, que vous venez d'appliquer le style à votre drawable.
Hmm. Je n'arrive pas à le faire fonctionner. J'ai créé un nouveau style appelé "gras", et a créé un autre XML appelé "button_test.xml" fichier contenant un sélecteur avec les différents états (pressé, concentré, normal). Je ne suis pas sûr de la façon de référence "button_test.xml" dans ma mise en page.
vous appliquez les styles à l'un drawable eux-mêmes dans leur fichier xml
Je ne suis pas sûr si je suis complètement comprendre ce que tu veux dire... j'ai essayé ce déjà par la création d'un fichier XML contenant un <sélecteur> avec les divers états, et chaque état contient un autre drawable et de style. Je fais appel à ce fichier XML que j'ai créé dans ma mise en page à l'aide de android:background="NEW_XML_FILE_I_CREATED." Il ne semble pas fonctionner.
OriginalL'auteur schwiz
Après un examen de l'un de mes button.xml fichiers, j'ai trouvé que l'ordre d'évaluation (ce qui est noté dans les documents..) était telle que mes tests ont choisi la même drawable. Correction de l'ordre de le faire fonctionner.
Sauf dans le cas de button2.xml. J'ai fait le travail en supprimant tous sauf la "drawable" et le "state_*" cahier des charges. J'ai eu un "textColor" là - ressemble XML qui échappe à d'autres vérifications (comme le font style=".." ci-dessus) en silence invalide le sélecteur. Un bon endroit pour étendre la validation!!!
Schwiz a droite... pour le texte utiliser un sélecteur de sens de la "couleur" de la sous-répertoire de votre répertoire de ressources: voir ColorStateList.
OriginalL'auteur DJC