Android中动画效果有不少,包括ViewAnimator,逐帧动画和补间动画。今天,先来看看补间动画中的四个基本的吧。
java
一:淡入淡出Alpha
ide
淡入淡出所呈现的效果表如今不一样时刻画面的透明度不一样。
测试
具体实现:
动画
(1)实例化AnimationSet对象spa
//实例化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)开启动画
get
//在iv上开启动画 iv.startAnimation(animationSet); |
二:旋转Rotate
animation
旋转所呈现的效果表如今画面随着旋转角度的设置而进行的动画效果。
具体实现:
(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控件上的单击事件中实现的,因为结果不是很好捕捉,你们能够自行测试一下。更多的效果,还得在规划以后再实现哦。。。加油