J'ai des boutons avec différents draw9patch png
comme arrière-plan. Actuellement, les boutons sont contrôlés par selector
qui ressemble à ceci:
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:drawable="@drawable/pressed" Android:state_pressed="true"/>
<item Android:drawable="@drawable/disabled" Android:state_enabled="false"/>
<item Android:drawable="@drawable/focused" Android:state_focused="true"/>
<item Android:drawable="@drawable/default"/>
</selector>
Pour les Android Lollipop, ils ont un RippleDrawable
pour l'effet tactile, qui ressemble à ceci:
<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:color="?android:colorControlHighlight">
<item>
...
</item>
</ripple>
Concernant le nouvel effet d'entraînement tactile:
1: Puis-je définir draw9patch comme arrière-plan pour RippleDrawable
?
2: Comment puis-je intégrer les deux différents xml ci-dessus que je veux suivre la conception des matériaux? Dois-je débiter un nouveau dossier/layout xml pour le nouveau RippleDrawable
?
1) Oui. Consultez la documentation de RippleDrawable pour plus de détails sur la façon dont les couches sont composées, mais en gros vous voulez:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:color="?android:attr/colorControlHighlight">
<item Android:drawable="@drawable/yourninepatch" />
</ripple>
Ou pour gérer également l'état désactivé d'une manière propre, vous pouvez souhaiter:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:color="?android:attr/colorControlHighlight">
<item>
<selector>
<item Android:state_enabled="false">
<nine-patch
Android:src="@drawable/yourninepatch"
Android:alpha="?android:attr/disabledAlpha" />
</item>
<item>
<nine-patch Android:src="@drawable/yourninepatch" />
</item>
</selector>
</item>
</ripple>
2) Oui, vous devez placer votre XML ondulé dans drawable-v21.