Android动画全篇系列(一) |
您所在的位置:网站首页 › 逐帧动画优点 › Android动画全篇系列(一) |
文章目录
一、逐帧动画介绍二、实现三、AnimationDrawable动态加载动画AnimationDrawable的方法
优缺点优点缺点
一、逐帧动画介绍
逐帧动画是一种常见的动画形式(Frame By Frame),其原理是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。 ——《百度百科》 逐帧动画是最好理解的动画,也是很简单暴力的动画。 二、实现 导入资源![]() ![]() ![]() 在 标签下仅有一种标签 可以使用,其标签仅有两个属性: -drawable:就是对应的图片, -duration :每一张图片显示的时间(单位ms) 加载这个animation-list,如果是对于ImageView,可以设置成他的src属性,如果是对于其他View或者ViewGroup,可以设置成background属性:![]() 接下来看看效果图: 既然我们都知道了我们创建的animation-list文件会以Drawable的样子实现,那么我们完全可以动态创建Drawable的资源,然后赋值给ImageView的drawable属性或者其他View的background属性中。 动态加载动画动态加载动画的话,就可以将我们在之前的布局中删除一行代码: ImageView的 android:src="@drawable/anim_frame_one" TextView的 android:background="@drawable/anim_frame" val animDrawable = resources.getDrawable(R.drawable.anim_frame,null) as AnimationDrawable val animDrawable2 = resources.getDrawable(R.drawable.anim_frame,null) as AnimationDrawable btn_start_img.setOnClickListener { img_frame.setImageDrawable(animDrawable) (img_frame.drawable as AnimationDrawable).start() } btn_start_text.setOnClickListener { //这里为什么要创建第二个animDrawable? //如果还沿用第一个animDrawable,那么他们的引用会是 //同一个animDrawable,会出现其他错误。 tv_text.background = animDrawable2 (tv_text.background as AnimationDrawable).start() } |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |