android中的逐帧动画
2015-11-02 20:38
489 查看
在android中实现动画最简单的一种方式就是使用逐帧动画(AnimationDrawable).逐帧动画的原理同最古老的动画机制是一样的,通过快速的播放一组变化微小的图片,在人眼的视差时间下,达到一种连续播放的效果。逐帧动画涉及到的类是AnimationDrawable,这个类是一个Drawable类,因此需要将该类设置为一个view的background,然后让背景动起来。
定义一个AnimationDrawable:
android:oneshot表示动画是否循环播放,如果是true,表示只播放一次;如果是false,循环播放
调用动画:
也可以在代码中实例化一个AnimationDrawable对象
效果:
定义一个AnimationDrawable:
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/radar_001" android:duration="30" /> <item android:drawable="@drawable/radar_002" android:duration="30" /> <item android:drawable="@drawable/radar_003" android:duration="30" /> <item android:drawable="@drawable/radar_004" android:duration="30" /> <item android:drawable="@drawable/radar_005" android:duration="30" /> <item android:drawable="@drawable/radar_006" android:duration="30" /> </animation-list>
android:oneshot表示动画是否循环播放,如果是true,表示只播放一次;如果是false,循环播放
调用动画:
AnimationDrawable ad = (AnimationDrawable)mImageView.getBackground(); ad.start();
也可以在代码中实例化一个AnimationDrawable对象
AnimationDrawable ad2 = new AnimationDrawable(); ad2.addFrame(this.getResources().getDrawable(R.drawable.radar_001), 50); ad2.addFrame(this.getResources().getDrawable(R.drawable.radar_002), 50); ad2.setOneShot(false);
效果:
![](http://images2015.cnblogs.com/blog/257776/201511/257776-20151102203744305-1024785979.png)
相关文章推荐
- 解决android中软件盘弹出导致的控件位置问题
- 【Android应用开发技术:用户界面】Android应用的本地化和国际化
- 今天学一招 android dimen中设置不带单位的数值
- android蓝牙的调试(博通蓝牙工作 and 低功耗模式)
- android 之 ExpandableListView列表中的列表
- Android 反编译详解
- Android中SwipeRefreshLayout的使用
- Android之锁屏后,防止服务被关闭
- 第三部分 刷机教程之终极秘诀——DNW刷android系统
- Android数据加密解密
- [Android开发]使用XUtils框架出现的问题记录
- android组件之一Service
- Android开发在路上:少去踩坑,多走捷径
- Android JNI 机制
- Android自定义View入门
- android开源项目和框架
- Android Service即四大组件总结
- ViewHolder和notifyDataChanged
- Android依赖注入类库 Butter Knife的使用
- android 使用Intent传递对象 Serializable 或者 Parcelabel 《第一行代码》