您的位置:首页 > 产品设计 > UI/UE

AndroidUI 视图动画-混合动画效果 (AnimationSet)/动画效果监听

2015-10-01 20:11 555 查看
在前面介绍了几种动画效果:透明动画效果(AlphsAnimation)、移动动画效果(TranslateAnimation)、旋转动画效果(RotateAnimation)、缩放动画效果(ScaleAnimation);那么可不可以将这几种动画效果混在一块用呢?

可以的,这个时候我们就用到了AnimationSet,它可以将一种或多种动画效果放在一起运行,下面是一个移动+透明效果的例子:

<Button
android:id="@+id/btnAnimation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnAnimation" />


动画代码:

findViewById(R.id.btnAnimation).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
//创建动画容器,并且将是否使用动画补间(shareInterpolator)设置为true;
//				AnimationSet set=new AnimationSet(true);
//透明效果动画
//				AlphaAnimation alpha=new AlphaAnimation(0,1);
//				alpha.setDuration(2000);
//移动效果动画
//				TranslateAnimation trans=new TranslateAnimation(50, 0, 50, 0);
//				trans.setDuration(2000);
//				set.addAnimation(alpha);
//				set.addAnimation(trans);
//				v.startAnimation(set);

//使用XML配置混合动画
v.startAnimation(AnimationUtils.loadAnimation(v.getContext(), R.anim.set1));
}
});


XML:



<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="true">
<alpha android:fromAlpha="0"
android:toAlpha="1"
android:duration="2000" />
<translate android:fromXDelta="50"
android:toXDelta="0"
android:fromYDelta="50"
android:toYDelta="0"
android:duration="2000" />
</set>


效果:





动画效果监听,如果想在动画的执行过程,做一些其它事情可以实现动画的setAnimationListener事件监听器,在事件监听器里面有三个方法:

//透明效果动画
AlphaAnimation alpha=new AlphaAnimation(0,1);
alpha.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationStart(Animation animation) {
}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationEnd(Animation animation) {
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: