2017-04-17 3 views
0

J'essaye d'utiliser mon fichier xml pour ajouter un drawable à un bouton afin qu'il donne l'effet de rebond. La taille de l'état de repos devrait être 1x1. Quand vous cliquez dessus, il devrait aller de 1 à 0.75, puis revenir de 0.75 à 1 pour qu'il ressemble à un rebond. Je veux que l'état par défaut soit fondamentalement nul (un autre code provoque l'état par défaut à se déclencher et le rebond se produira quand je ne le veux pas).android statelistdrawable pour provoquer le bouton à rétrécir, puis revenir à la taille d'origine

Donc, j'ai besoin de 3 états. 1 pour appuyer sur, 1 pour revenir à la valeur par défaut, et celui qui est la valeur par défaut.

Y a-t-il un autre état que je peux utiliser pour que le bouton soit plus petit, puis plus grand encore ressemblant à un rebond sans utiliser par défaut?

Codes

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> <!-- default state --> 
     <set android:ordering="together"> 
      <objectAnimator 
       android:duration="75" 
       android:propertyName="scaleX" 
       android:valueFrom="1" 
       android:valueTo="1" 
       android:valueType="floatType" /> 
      <objectAnimator 
       android:duration="75" 
       android:propertyName="scaleY" 
       android:valueFrom="1" 
       android:valueTo="1" 
       android:valueType="floatType" /> 
     </set> 
    </item> 

    <item android:state_pressed="true"> <!-- pressed state --> 
     <set android:ordering="together"> 
      <objectAnimator 
       android:duration="75" 
       android:propertyName="scaleX" 
       android:valueFrom="1" 
       android:valueTo="0.25" 
       android:valueType="floatType" /> 
      <objectAnimator 
       android:duration="75" 
       android:propertyName="scaleY" 
       android:valueFrom="1" 
       android:valueTo="0.25" 
       android:valueType="floatType" /> 
     </set> 

    </item> 

    <item android:state_selected="true"> <!-- selected state --> 
     <set android:ordering="together"> 
      <objectAnimator 
       android:duration="75" 
       android:propertyName="scaleX" 
       android:valueFrom="0.25" 
       android:valueTo="1" 
       android:valueType="floatType" /> 
      <objectAnimator 
       android:duration="75" 
       android:propertyName="scaleY" 
       android:valueFrom="0.25" 
       android:valueTo="1" 
       android:valueType="floatType" /> 
     </set> 
    </item> 
</selector> 

Répondre

1

Utilisez ces états pour l'état par défaut:

<item 
    android:state_pressed="false" 
    android:state_focused="false" 
    android:state_selected="false" 
    ...> 
+0

Ah, maintenant je comprends! Merci =) Cela a fonctionné parfaitement – JennHeart3

+0

Ne pas oublier upvote et accepter :) –