Android中动画效果有很多,包括ViewAnimator,逐帧动画和补间动画。今天,先来看看补间动画中的四个基本的吧。
一:淡入淡出Alpha
淡入淡出所呈现的效果表现在不同时刻画面的透明度不同。
具体实现:
(1)实例化AnimationSet对象
//实例化AnimationSet对象
AnimationSet animationSet = new AnimationSet(true);
(2)实例化AlphaAnimation对象
//实例化AlphaAnimation对象,参数为(起始的透明度,终止的透明度)
//1表示完全不透明,0表示完全透明
AlphaAnimation zAnimation = new AlphaAnimation(1, 0);
(3)设置动画时长
//设置动画时长
zAnimation.setDuration(3000);
(4)添加AlphaAnimation对象到AnimationSet中
//添加AlphaAnimation对象到AnimationSet中
animationSet.addAnimation(zAnimation);
(5)开启动画
//在iv上开启动画
iv.startAnimation(animationSet);
二:旋转Rotate
旋转所呈现的效果表现在画面随着旋转角度的设置而进行的动画效果。
具体实现:
(1)实例化AnimationSet对象
// 实例化AnimationSet对象
AnimationSet animationSet = new AnimationSet(true);
(2)实例化RotateAnimation对象
// 实例化RotateAnimation对象,参数为(旋转的起始角度,旋转的角度,旋转中心的类型(这里为根据自己),0.5f表示x方向或者y方向的中心)
RotateAnimation animation = new RotateAnimation(0, 360,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, (float) 0.5);
(3)设置动画时长
//设置动画的执行时间
animation.setDuration(3000);
(4)添加RotateAnimation对象到AnimationSet中
//添加动画到AnimationSet上
animationSet.addAnimation(animation);
(5)开启动画
//把动画加载到控件上,并开启动画
iv.startAnimation(animationSet);
三:缩放Scale
缩放所呈现的效果表现在画面随着动画的播放,表现出不同的大小比例。
具体实现:
(1)实例化AnimationSet对象
// 实例化AnimationSet对象
AnimationSet animationSet = new AnimationSet(true);
(2)实例化ScaleAnimation对象
// 参数:后四个参数表示缩放的中心为图片的中心点
//前四个参数:表示该动画执行时,先从图片一般的大小0.5f逐渐变化到整张图片1代表的位置 若将1 变为2
//则表示从一半的大小变化到2倍元图片大小的位置。
// 实例化ScaleAnimation对象
ScaleAnimation animation = new ScaleAnimation(0.5f, 2, 0.5f, 2,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
(3)设置动画时长
// 设置动画时长
animation.setDuration(3000);
(4)添加ScaleAnimation对象到AnimationSet中
// 该属性的作用表示:设置动画结束时的通知状态,默认是回到原来初始的状态,但设置之后,就会停留在动画结束时的那一刻
animation.setFillAfter(true);
// 将ScaleAnimation对象添加到AnimationSet上
animationSet.addAnimation(animation);
(5)开启动画
// 开启动画
iv.startAnimation(animationSet);
四:移动Translate
移动所呈现的效果表现在画面随着动画的播放,画面在屏幕上移动。
具体实现:
(1)实例化AnimationSet对象
// 实例化AnimationSet对象
AnimationSet animationSet = new AnimationSet(true);
(2)实例化TranslateAnimation对象
// 实例化TranslateAnimation对象
// 参数:1 3 5 7表示的是参照点的类型,这里为画面自身
// 参数:2 4 6 8表示的移动的值,1表示这张图片的宽度高度范围,0表示这张图片从左上角开始移动
TranslateAnimation animation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0,
Animation.RELATIVE_TO_SELF, 1,
Animation.RELATIVE_TO_SELF, 0,
Animation.RELATIVE_TO_SELF, 1);
(3)设置动画时长
// 设置动画时长
animation.setDuration(3000);
(4)添加TranslateAnimation对象到AnimationSet中
// 将TranslateAnimation添加到AnimationSet对象中
animationSet.addAnimation(animation);
(5)开启动画
// 开启动画
iv.startAnimation(animationSet);
上面的四种动画均是在,主界面中的ImageView控件上的单击事件中实现的,由于结果不是很好捕捉,大家可以自行测试一下。更多的效果,还得在规划之后再实现哦。。。加油