欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android动画系列——帧动画(Frame动画)

程序员文章站 2022-03-16 16:16:45
...

动画系列——帧动画(Frame 动画)

​ 一张一张的图片按照顺序和时间进行一帧一帧的播放。将图片资源作为背景图片,依次播放。用到的类:AnimationDrawable

使用XML实现

1 将资源图片导入到对应的 drawable-xxx 或drawable 目录中
2 在其目录下,创建xml文件,根节点选择 animation-list

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >	
    //自动执行,true,停在最后一帧(只播放一次),false,循环播放
    <item
        android:drawable="@drawable/logo1"
        android:duration="850">		//设置持续时长
    </item>
    <item
        android:drawable="@drawable/logo2"
        android:duration="850">
    </item>
</animation-list>

3 java代码

ImageView iv = (ImageView) findViewById(R.id.iv);   //找到图片控件
iv.setBackgroundResource(R.drawable.logo);		   //导入资源文件
AnimationDrawable anim = (AnimationDrawable) iv.getBackground();	
anim.start();									//开始播放动画

使用代码实现

方法一:添加多个帧 Drawable

mAnimationDrawable = new AnimationDrawable();
mAnimationDrawable.setOneShot(false);//是否执行一次
for(int i=0;i<11;i++){				//添加多个帧Drawable
	Drawable frame = getResources().getDrawable(R.drawable.girl_1+i);
	mAnimationDrawable.addFrame(frame, 200);
}
mImageView.setImageDrawable(mAnimationDrawable);	//设置帧动画,默认是停止状态

方法二:引用xml 帧动画drawable

// 引用xml 帧动画drawable
mAnimationDrawable=(AnimationDrawable)getResources().getDrawable(R.drawable.frame);
mImageView.setImageDrawable(mAnimationDrawable);