Android动画机制总结笔记--逐帧动画 FrameAnimation篇

注意:本篇文章是本人阅读关于Android动画的文章所写下的总结,方便以后查阅,所有内容非原创,侵权删。

本篇文章内容来自于

  1. Android高级进阶 顾浩鑫
  2. Android自定义控件三部曲文章索引之动画篇

目录

2.逐帧动画 FrameAnimation/DrawableAnimation

2.逐帧动画 FrameAnimation/DrawableAnimation

运用场景:设计师给出一系列状态不断变化的图片,开发者可以指定每一帧对应的图片和持续的时间,就可以开始播放动画。

实现方式分为:XML实现+代码实现

XML实现

1.将图片资源放在res/drawable里
2.在res/drawable中新建帧动画(直接new drawable resource file 即可)

<?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/a_0"
        android:duration="100" />
    <item
        android:drawable="@drawable/a_1"
        android:duration="100" />
    <item
        android:drawable="@drawable/a_2"
        android:duration="100" />
</animation-list>

android:oneshot="false" 用来控制动画是否循环播放
android:duration="100"指定每一帧的播放持续时间

3.播放帧动画

ImageView iv_frame_show = findViewById(R.id.iv_frame_show);
//播放动画
iv_frame_show.setImageResource(R.drawable.anim_frame);
AnimationDrawable drawable = (AnimationDrawable) iv_frame_show.getDrawable();
drawable.start();
code代码实现

1.将图片资源放在res/drawable里
2.代码实现

ImageView iv_frame_show = findViewById(R.id.iv_frame_show);
//设置+播放动画
AnimationDrawable animationDrawable = new AnimationDrawable();
for (int i = 1; i <= 5; i++) {
  int id = getResources().getIdentifier("pic" + i, "drawable", getPackageName());
  Drawable drawable1 = getResources().getDrawable(id);
  animationDrawable.addFrame(drawable1, 120);
}
iv_frame_show.setBackgroundDrawable(animationDrawable);
animationDrawable.start();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容