1.Android中的动画种类,它们的特点和区别是什么?
根据官方文档,android提供三种动画效果。
1)frame-by-frame animation逐帧动画
一张张图片排列,顺序播放。
习惯上把AnimationDrawable设置为ImageView的背景
android:background=@anim/frame_anim
然后在java代码中获取AnimationDrawable对象:
AnimationDrawable anim = (AnimationDrawable)imageView.getBackground();
(注意:AnimationDrawable默认不播放,调用其start()方法开始播放,stop停止播放)
2)tweened animation补间动画
提供:位移、缩放、旋转、透明度变化以及几种效果组合使用,变化的是父容器而不是view本身。常用的实现类为:AlphaAnimation(透明度动画)、ScaleAnimation(缩放动画)、TranslateAnimation(位移动画)、RotateAnimation(透明度动画)。一般在anim文件夹下创建xml文件配置参数,在activity中使用即可。常用的,activity的进入退出的切换动画是在finish()后调用:
overridePendingTransition(R.anim.in, R.anim.out);
3)property animation属性动画
拥有补间动画的功能及自己特别的功能。可以达到view本身的动画效果,并且能改变view的属性。
ObjectAnimator 动画的执行类,最常用的执行类
ValueAnimator 动画的执行类,一个比较核心的类
AnimatorSet 用于控制一组动画的执行:线性,一起,每个动画的先后执行等。
ObjectAnimator.ofFloat(view, //需要变化的View,可以是一张图片
"rotationX",//依靠X轴
0.0F, //从0度
360.0F)//转360度
.setDuration(600)// 持续600毫秒
.start();