属性动画系统提供对 ViewGroup 对象的更改添加动画效果的功能,还可轻松为视图对象本身添加动画效果。您可使用 LayoutTransition 类为 ViewGroup 内的布局更改添加动画效果。当您向 ViewGroup 添加视图或删除其中的视图时,或当您使用 VISIBLE、INVISIBLE 或 GONE 调用视图的 setVisibility() 方法时,这些视图可能会经历出现和消失动画。
一、为父控件添加
android:animateLayoutChanges="true"
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/verticalContainer"
android:animateLayoutChanges="true" />
二、子控件添加
android:stateListAnimator="@drawable/animate_scale"
<Button
android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:stateListAnimator="@drawable/animate_scale"
android:text="Hello World!"/>
三、animate_scale.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- the pressed state; increase x and y size to 150% -->
<item android:state_pressed="true">
<set>
<objectAnimator android:propertyName="scaleX"
android:duration="@android:integer/config_shortAnimTime"
android:valueTo="1.5"
android:valueType="floatType"/>
<objectAnimator android:propertyName="scaleY"
android:duration="@android:integer/config_shortAnimTime"
android:valueTo="1.5"
android:valueType="floatType"/>
</set>
</item>
<!-- the default, non-pressed state; set x and y size to 100% -->
<item android:state_pressed="false">
<set>
<objectAnimator android:propertyName="scaleX"
android:duration="@android:integer/config_shortAnimTime"
android:valueTo="1"
android:valueType="floatType"/>
<objectAnimator android:propertyName="scaleY"
android:duration="@android:integer/config_shortAnimTime"
android:valueTo="1"
android:valueType="floatType"/>
</set>
</item>
</selector>
本文深入讲解了属性动画系统如何为ViewGroup对象的更改添加动画效果,包括如何使用LayoutTransition类为布局更改添加动画,以及如何为视图对象本身添加动画效果。通过具体的XML配置示例,展示了如何实现按钮在按下状态时的缩放动画。
623

被折叠的 条评论
为什么被折叠?



