Frame Animation&&Drawable Animation
16lz
2021-01-25
参考demo
1、文件位置
在资源文件夹下:res/drawable/filename.xml
<?xml version="1.0" encoding="utf-8"?>
- android:oneshot:true则只运行一次,false则重复动画。
- android:drawable:对应资源文件
- android:duration:每一帧时长
在java文件中使用
//将控件背景设置为我们的AnimationDrawable资源文件image.setBackgroundResource(R.drawable.frame);//拿到要编译成AnimationDrawable的背景 AnimationDrawable imageAnimation = (AnimationDrawable)image.getBackground(); //开始动画 imageAnimation.start();
2、AnimationDrawable
AnimationDrawable就是对应于我们自身定义的xml文件,在Java代码中将xml对象转为了AnimationDrawable之后,我们就可以通过它来获取xml文件里面的属性。
XML文件中的变量
- android:drawable: 用于该帧的图片。
- android:duration: 每一帧的时长。
- android:oneshot: true则只运行一次,false则重复动画。
- android:variablePadding: 如果true,允许drawable文件的当前状态改变。
- android:visible: 是否可见。
方法
- void addFrame (Drawable frame, int duration): 添加一帧动画到动画里面。
- int getDuration (int i): 获取第i帧的时长。
- Drawable getFrame (int index): 获取第i帧的Drawbale。
- int getNumberOfFrames (): 获取共有多少帧。
- void inflate (Resources r, XmlPullParser parser, AttributeSet attrs, Resources.Theme theme): 从XML资源里面加载一个Drawable文件。
- boolean isOneShot (): 判断是否单次播放。
- boolean isRunning (): 判断动画是否还在运行。
- Drawable mutate (): 一个drawable如果使用了mutate()方法,那么对这个drawable属性(包括设置drawable的透明度)修改将不会共享。
- void setOneShot (boolean oneShot): 设置动画播放一次或者循环。
- boolean setVisible (boolean visible, boolean restart): 设置该AnimationDrawable是否可见。
- void start (): 播放。
- void stop (): 停止。
- void unscheduleSelf (Runnable what): 让动画重新回到-1帧
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- 一款霸榜 GitHub 的开源 Linux 资源监视器!
- android抓取网络数据包工具
- Failed to fetch URL https://dl-ssl.google.com/android/reposi
- cocos2dx 3.3final 编译Android(安卓)平台