LayoutAnimation:
1)作用:为ViewGroup提供一个动画,这样在它的子view出场时都会具备这样的效果
2)效果:比如为listView添加一个layoutAnimation,那么在listView显示的时候它的item都会以一样的动画显示出来
3)使用对象:viewGroup,一般都在listView使用的比较多
给ViewGroup加上LayoutAnimation步骤:
1)先在xml文件中创建一个动画集用来显示viewGroup中子view的出场效果
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:shareInterpolator="false" >
<alpha
android:fromAlpha="0.5"
android:toAlpha="1.0" />
<translate
android:fromXDelta="500"
android:toXDelta="0" />
</set>
2)在xml文件中设置LayoutAnimation的属性
<?xml version="1.0" encoding="UTF-8"?>
<!-- animation:就是子view要显示的动画
animationOrder:是viewgroup中子view的出场顺序,一共三种,normal:正常的从上到下
reverse:倒序,从下到上
random:随机顺序
delay:子类动画时间间隔,值可以为百分比和float型,这个间隔=animation中动画的during*delay中的数值
-->
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:animation="@anim/layout_animation"
android:animationOrder="normal"
android:delay="0.5" />
3)在ViewGroup的xml文件中设置属性
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutAnimation="@anim/anim_layout" >
</ListView>
除了可以在xml文件中定义外,还可以在java代码中定义,至于在java代码中定义这里就不阐述啦,读者可自己去试验一下
接下来说一下Avtivity之间的切换效果:
activity有自己默认的切换效果,但我们也可以自定义切换效果,主要用到overridePendingTransition(int enterAnim , int exitAnim)
具体实现也有几个步骤:
1)先定义两个动画效果:进入和出去的效果
<?xml version="1.0" encoding="utf-8"?>
<!-- 进入的效果 -->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-100%p"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0"
android:duration="500" />
<?xml version="1.0" encoding="utf-8"?>
<!-- 出去的效果 -->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="100%p"
android:toYDelta="0"
android:duration="500" />
2)调用overridePendingTransition(),切记,这个方法一定要在finish或者startActivity之后调用否则无效
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.pre_in, R.anim.pre_out);
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.pre_out, R.anim.pre_in);
}