android5.0StateListAnimator
先看效果图
StateListAnimator有xml实现和代码实现,和其他属性动画差不多,实现还是比较简单的。
1.xml实现(xml文件可以放在drawable目录(不能自动提示),也可以放在animator目录中(建议))
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<set>
<objectAnimator android:duration="500" android:propertyName="rotationX" android:valueTo="360" android:valueType="floatType" />
</set>
</item>
<item android:state_pressed="false">
<set>
<objectAnimator android:duration="500" android:propertyName="rotationX" android:valueTo="0" android:valueType="floatType" />
</set>
</item>
</selector>
指定控件使用该属性
android:stateListAnimator="@animator/statelistanimator"
或
android:stateListAnimator="@drawable/statelistanimator"
如下:
<!--或者 android:stateListAnimator="@drawable/statelistanimator"-->
<Button
android:id="@+id/btn"
android:layout_width="200dp"
android:layout_height="100dp"
android:background="@android:color/holo_red_dark"
android:gravity="center_horizontal"
android:stateListAnimator="@animator/statelistanimator"
android:text="Hello World!" />
2.代码实现
Button button = (Button) findViewById(R.id.btn);
StateListAnimator animator = AnimatorInflater.loadStateListAnimator(this, R.animator.statelistanimator);
//StateListAnimator animator = AnimatorInflater.loadStateListAnimator(this, R.drawable.state);
button.setStateListAnimator(animator);