生成treeen动画有两种方式,一种是通过AnimationUtils加载动画xml文件,animation = AnimationUtils.loadAnimation(this, R.anim.scale_xml);
一种是直接new 一个动画出来,animation = new TranslateAnimation(0, 100f, 0, 100f);
分类:
1.AlphaAnimation 控制透明度动画
2.ScaleAnimation 控制放大缩小动画
3.TranslateAnimation 控制位移动画
4.RotateAnimation 控制旋转动画
之前对动画的理解很局限,只是简单的运用,但是有几个点没想到,1.动画执行到最后一帧的时候是否可以保持,2.动画保持最后一帧后显示的界面再次使用动画是什么结果,3.动画可以监听吗
花了一些时间测试下几个问题都能有个答案,
1.动画执行完后是可以保留第一帧,也可以保留最后一帧
setFillAfter就是控制是否保留最后一帧的方法,默认为false,同理setFillBefore就是动画执行后是否保留动画开始的第一帧
2.动画执行后,及时你保留了最后一帧,效果虽然达到了但是view的属性还是没变的,等你下次执行的时候,view的原属性还是有可能出现的,例如你透明度动画设置为0.5保留最后一帧时,view的透明度效果是半透明,但当你执行放大缩小动画,位移动画,或者旋转动画时view都会恢复原来的属性
3.最后一个疑问是tween也是可以监听的AnimationListener
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
Log.i("tag", "onAnimationStart");
}
@Override
public void onAnimationEnd(Animation animation) {
Log.i("tag", "onAnimationEnd");
}
@Override
public void onAnimationRepeat(Animation animation) {
Log.i("tag", "onAnimationRepeat");
}
});
动画开始,结束或者重复执行的时候都可以监听,效果图很简单就不上传了,下面附原代码:http://download.youkuaiyun.com/detail/u010406539/9662572