Sauvegarder
Choix utilisateur pour les Cookies
Nous utilisons des cookies afin de vous proposer les meilleurs services possibles. Si vous déclinez l'utilisation de ces cookies, le site web pourrait ne pas fonctionner correctement.
Tout accepter
Tout décliner
Essentiel
Ces cookies sont nécessaires au bon fonctionnement du site, vous ne pouvez pas les désactiver.
Affichage
Accepter
Analytique
Outils utilisés pour analyser les données de navigation et mesurer l'efficacité du site internet afin de comprendre son fonctionnement.
Google Analytics
Accepter
Décliner

Création d’un image de fond pour vos boutons sans ressources graphiques

25
mars
2014

Création d’un image de fond pour vos boutons sans ressources graphiques

Bonjour,
Directement sorti d’une question de l’un de mes stagiaires, comment on fait pour mettre en place des background sur nos boutons, qui soient arrondies et dont la couleurs change en fonction de son état. L’objectif est d’optimiser au maximum les images qui prennent de la place en mémoire (RAM et ROM) en définissant nos formes de boutons directement en xml.
C’est simple, il suffit de meller layer-list et selector (qui sont deux types de drawables différents):
Pour cela, associez à votre bouton (ou n’importe quel de vos composants graphiques possédant un background) le drawable que nous allons définir:

<Button
android:id= »@+id/btnAdd »
android:layout_width= »wrap_content »
android:layout_height= »wrap_content »
android:background= »@drawable/button_lred »
android:text= »@string/btn_add » />

Ensuite, créez le drawable (res\drawable\button_lred):

<?xml version= »1.0″ encoding= »utf-8″?>
<layer-> xmlns:android= »http://schemas.android.com/apk/res/android » >

<item>
<shape android:gravity= »center » >
<stroke
android:width= »@dimen/stroke_buttonSize »
android:color= »@color/button_border » />

<gradient
android:angle= »270″
android:endColor= »@color/layout_background »
android:gradientRadius= »50″
android:startColor= »@color/main_background »
android:type= »sweep » />

<padding
android:bottom= »@dimen/stroke_buttonSize »
android:left= »@dimen/stroke_buttonSize »
android:right= »@dimen/stroke_buttonSize »
android:top= »@dimen/stroke_buttonSize » />

<corners android:radius= »@dimen/corner_button_Size » />

<size
android:height= »@dimen/buttonSize »
android:width= »@dimen/buttonSize » />
</shape>
</item>
<item>
<selector
android:constantSize= »true »
android:dither= »true »
android:variablePadding= »true » >
<item
android:state_focused= »true »
android:state_selected= »true »>
<shape android:gravity= »center » >
<solid android:color= »#990000FF » />

<size
android:height= »@dimen/buttonSize »
android:width= »@dimen/buttonSize » />

<corners android:radius= »@dimen/corner_button_Size » />
</shape>
</item>
<item android:state_pressed= »true »>
<shape android:gravity= »center » >
<solid android:color= »#99FF0000″ />

<size
android:height= »@dimen/buttonSize »
android:width= »@dimen/buttonSize » />

<corners android:radius= »@dimen/corner_button_Size » />
</shape>
</item>
<item>
<shape android:gravity= »center » >
<solid android:color= »#99FFFF00″ />

<size
android:height= »@dimen/buttonSize »
android:width= »@dimen/buttonSize » />

<corners android:radius= »@dimen/corner_button_Size » />
</shape>
</item>
</selector>
</item>

</layer-list>

Et voilà, vous avez un bouton rond qui change de couleur en fonction de son état. Pour l’utiliser, modifier les références vers les dimensions et les couleurs pour mettre vos propres contraintes.
Désolé pour la présentation mais sur DVP ils ont mis un outil de rédaction pour les blogs qui n’affiche pas de code :(
Le résultat est ci-dessous:

Normal buttonNormal

Normal selectedSélectionné

Vous devez être connecté pour poster un commentaire.

Original author: MathiasSeguy
Sauvegarder
Choix utilisateur pour les Cookies
Nous utilisons des cookies afin de vous proposer les meilleurs services possibles. Si vous déclinez l'utilisation de ces cookies, le site web pourrait ne pas fonctionner correctement.
Tout accepter
Tout décliner
Essentiel
Ces cookies sont nécessaires au bon fonctionnement du site, vous ne pouvez pas les désactiver.
Affichage
Accepter
Analytique
Outils utilisés pour analyser les données de navigation et mesurer l'efficacité du site internet afin de comprendre son fonctionnement.
Google Analytics
Accepter
Décliner