介绍
本篇文章给大家分享的是有关怎么在Android应用中实现一个动画效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
<强> Android三种动画详解强>
<强>帧动画强>
一张张图片不断的切换,形成动画效果
在可拉的目录下定义xml文件,子节点为animation-list,在这里定义要显示的图片和每张图片的显示时长
& lt; animation-list xmlns: android=癶ttp://schemas.android.com/apk/res/android" android:一次通过=癴alse"比; & lt;项目android:可拉的=癅drawable/g1" android:持续时间=?00”;/比; & lt;项目android:可拉的=癅drawable/g2" android:持续时间=?00”;/比; & lt;项目android:可拉的=癅drawable/g3"、 android:持续时间=?00”;/比; & lt;/animation-list>
在屏幕上播放帧动画
第四ImageView=(ImageView) findViewById (R.id.iv);//把动画文件设置为imageView的背景 iv.setBackgroundResource (R.drawable.animations); AnimationDrawable广告=(AnimationDrawable) iv.getBackground ();//播放动画 ad.start ();
补间动画
- <李>原形态变成新形态时为了过渡变形过程,生成的动画就叫补间动画,补间动画,只是一个动画效果,组件其实还在原来的位置上,xy没有改变李> <>李位移,旋转,缩放,透明李>
<强>位移:强>
- <李>参数10指的是X的起点坐标,但不是指屏幕X坐标为10的位置,而是imageview的真实X + 10 李> <李>参数150指的是X的终点坐标,它的值是imageview的真实X + 150
李,>
//创建为位移动画对象,设置动画的初始位置和结束位置 TranslateAnimation ta=new TranslateAnimation (150, 140);
- <李> x坐标的起点位置,如果相对于自己,传0.5 f,那么起点坐标就是真实x + 0.5 * 4宽度李> <李> x坐标的终点位置,如果传入2,那么终点坐标就是真实x + 2 * 4的宽度李> <李> y坐标的起点位置,如果传入0.5 f,那么起点坐标就是真实y + 0.5 * 4高度李> <李> y坐标的终点位置,如果传入2,那么终点坐标就是真实y + 2 * 4高度李>
TranslateAnimation ta=new TranslateAnimation(动画。RELATIVE_TO_SELF 0.5 f,动画。RELATIVE_TO_SELF 2动画。RELATIVE_TO_SELF 0.5 f,动画。RELATIVE_TO_SELF 2);
动画播放相关的设置
//设置动画持续时间 ta.setDuration (2000);//动画重复播放的次数 ta.setRepeatCount (1);//动画重复播放的模式 ta.setRepeatMode (Animation.REVERSE);//动画播放完毕后,组件停留在动画结束的位置上 ta.setFillAfter(真正的);//播放动画 iv.startAnimation (ta);
缩放:
- <李>参数0.1 f表示动画的起始宽度是真实宽度的0.1倍李> <李>参数4表示动画的结束宽度是真实宽度的4倍李> <李>缩放的中心点在静脉左上角
李,>
ScaleAnimation sa=new ScaleAnimation (0.1 f, 4、0.1 f, 4);
- <李>参数0.1 f和4意义与上面相同李> <>李改变缩放的中心点:传入的两个0.5 f类型都是相对于自己,这两个参数改变了缩放的中心点李> <李>中心点x坐标=真实x + 0.5 * 4宽度李> <李>中心点Y坐标=真实Y + 0.5 * 4高度
李,>
ScaleAnimation sa=new ScaleAnimation (0.1 f, 4、0.1 f 4动画。RELATIVE_TO_SELF 0.5 f,动画。RELATIVE_TO_SELF 0.5 f);
透明:
0为完全透明,1为完全不透明
AlphaAnimation aa=new AlphaAnimation (0, - 0.5 f);
旋转:
- <李> 20表示动画开始时的iv的角度李> <李> 360表示动画结束时iv的角度李> <李>默认旋转的圆心在静脉左上角
李,>
RotateAnimation ra=new RotateAnimation (360),
- <李> 20360的意义和上面一样李> <>李指定圆心坐标,相对于自己,值传入0.5,那么圆心的x坐标:真实x +四世宽度* 0.5 李> <李>圆心的Y坐标:真实Y +第四高度* 0.5
李,>
RotateAnimation ra=new RotateAnimation(360、动画。RELATIVE_TO_SELF 0.5 f,动画。RELATIVE_TO_SELF 0.5 f);
所有动画一起飞
//创建动画集合 AnimationSet设置=new AnimationSet(假);//往集合中添加动画 set.addAnimation (aa); set.addAnimation (sa); set.addAnimation (ra); iv.startAnimation(集);
<强>属性动画强>
位移:
- <李>第一个参数目标指定要显示动画的组件