Couleur d'arrière-plan Android ImageButton
J'ai un ImageButton avec une image de fond qui a une certaine transparence. Par défaut, le bouton devient un fond gris, où la transparence des pixels sont - en raison de l'Holo.La lumière thème. J'ai essayé le réglage de la couleur d'arrière-plan du bouton transparent via le setBackgroundColor(Color.TRANSPARENT)
méthode. Qui fonctionne très bien et fait ce que j'ai besoin sauf que maintenant mon bouton n'a plus la lumière bleue de la couleur lors de concentré/pressé et ressemble plutôt à plat (pas de frontières autour de lui, de sorte qu'il ressemble à une image).
J'ai googlé et vu que vous pouvez attribuer des sélecteurs comme expliqué ici mais cela voudrait dire que je dois spécifier une image par l'état des boutons et je ne veux pas le faire. Je veux hériter de la porte/pressé couleurs du thème, mais remplacer le bouton normal de l'arrière-plan (lorsqu'il n'est pas pressé/focus) et transparent au lieu de gris. Comment puis-je y parvenir?? Veuillez fournir un exemple que j'ai essayé beaucoup de différentes combinaisons sans succès.
Modifier
Merci à vous tous pour votre aide. J'ai compris comment faire ce travail sans avoir à recréer la même image avec le concentré et a pressé les états pour chaque bouton!
Voici ma solution:
Mon bouton est défini comme:
<ImageButton
android:id="@+id/ImageButton05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/button" />
Et mon fond de fichier XML (intitulé button.xml) est définie comme suit:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item android:drawable="@drawable/btn_default_pressed_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
<item android:state_focused="true">
<layer-list>
<item android:drawable="@drawable/btn_default_focused_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
<item android:state_hovered="true">
<layer-list>
<item android:drawable="@drawable/btn_default_focused_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
<item>
<layer-list>
<item android:drawable="@drawable/btn_default_normal_holo_light"></item>
<item android:drawable="@drawable/network_wifi"></item>
</layer-list>
</item>
</selector>
source d'informationauteur Ayyoudy
Vous devez vous connecter pour publier un commentaire.
Autant que je sache, vous ne pouvez pas parce que l'accent/pressé couleurs sont intégrés dans la même image, de ressources qui contiennent le fond gris.
Si vous voulez garder le focus du système/pressé, mais supprimer l'arrière-plan, vous aurez à récupérer une copie de l'image des ressources (qui peut être trouvé dans le kit de développement logiciel à
/sdkroot/platforms/[version]/data/res/drawable-hdpi
remplacer [version] avec ce que l'api de niveau, vous êtes après. Et si needbe remplacer hdpi avec une autre densité) et de modifier le bouton gris avec un éditeur de photos. Ensuite, faire un sélecteur qui fait référence à vos images modifiées et le définir comme fond pour votre bouton.EDIT:
Ici sont la valeur par défaut holo images de bouton pour mettre l'accent et pressé
Vous pouvez mettre quelque chose dans un fichier xml, par exemple,
custom_button.xml
et puis définissezbackground="@drawable/custom_button"
dans le bouton afficher.Veuillez vous référer à ce lien car il y a un exemple de xml: Android Standard Bouton avec une couleur différente
Je l'ai utilisé dans mon code, et il a travaillé juste la façon dont je le voulais.
De référence:
Android Standard Bouton avec une couleur différente
Édité:
Si vous utilisez plutôt
Peut-être que vous devriez essayer de définir une frontière.
Par exemple (Référence: Android - frontière pour le bouton ):
OU,
Vous pourriez essayer de définir le style de thème pour le bouton. (Mais il le serait dans un fichier séparé)
Le style/thème contient les attributs de couleur pour les différents états de bouton telles que l' /activé /désactivé/etc.
Pour le réglage de la couleur d'arrière-plan/image et avoir cliquez sur mettre en évidence l'effet,
Voici un exemple (Référence: Comment programme définissant l'attribut style dans une vue)
Vous pouvez ensuite appliquer ce sélecteur à un Bouton de réglage de la propriété android:background="@drawable/my_button".
Vous pouvez utiliser ImageView au lieu de ImageButton pour résoudre votre problème. Veuillez définir le android:propriété de l'arrière plan de l'ImageView à la couleur de fond de la société mère.
Vous pouvez écrire ceci dans votre fichier xml:
Il a travaillé pour moi.
si u n'a pas besoin de la valeur par défaut fond gris et u besoin de votre ImageButton semble comme une icône sans aucun décors tout utiliser android:attribut background et le configurer pour
espoir qu'aider quelqu'un