2017-04-17 52 views
0

我想用我的XML文件来添加一个drawable到一个按钮,以便它给出了反弹的影响。它的休息状态大小应该是1x1。当你点击它时,它应该从1到0.75,然后从0.75恢复到1,这样它看起来像一个反弹。android statelistdrawable导致按钮缩小,然后回到原始大小

我希望默认状态基本上没有什么(其他代码会导致默认状态被触发,反弹会发生在我不想要的时候)。

所以,我需要3个州。 1表示按下,1表示回到默认值,另一个表示默认值。

是否有任何其他状态,我可以使用,使按钮变小,然后再大一些看起来像反弹没有使用默认值?

代码

<?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> 

回答

1

使用这些状态为默认状态:

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

啊,现在我明白了!谢谢=)完美的工作 – JennHeart3

+0

不要忘记upvote并接受:) –