玩转Android---2D图形及动画---Frame动画

阅读更多

Frame动画其实就是逐帧动画,用法也比Tween动画简单,只需要创建一个AnimationDrawable对象来表示Frame动画,然后通过addFrame方法把每一帧要显示的内容加进去就行了,最后通过start方法就可以播放这个动画了,通过还可以使用

setOneShot()方法来设置动画是否重复播放。

再这里,还需要设置图片的所在位置,首先要在res/anim目录下创建一个xml配置文件,用于存放图片资源的索引,配置的是

一个以根原素和子元素

 

下面用3种方式来实现这个Frame动画

第一种:直接继承Activity,使用列表来实现

main.xml





   	

 res/anim/birthday.xml



	
	
	
	
	
	
	
	
	

 FramesActivity.java

package com.loulijun.frames;

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class FramesActivity extends Activity {
    private AnimationDrawable frameanim;
    private Button start,stop;
    private ImageView img;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        img = (ImageView)findViewById(R.id.imgview);
        start = (Button)findViewById(R.id.start);
        stop = (Button)findViewById(R.id.stop);
        //获得背景色,并转换为AnimationDrawable对象
        frameanim = (AnimationDrawable)img.getBackground();
        
        //为按钮添加监听事件
        start.setOnClickListener(new Button.OnClickListener()
        {

			@Override
			public void onClick(View v) {
				//开始动画
				frameanim.start();
			}
        	
        });
        
        stop.setOnClickListener(new Button.OnClickListener()
        {

			@Override
			public void onClick(View v) {
				// 停止动画
				frameanim.stop();
			}
        	
        });
    }
}

 效果如下:具体自己下载运行,我只截了一张图,没有做成gif的图片


玩转Android---2D图形及动画---Frame动画_第1张图片

 

  • 玩转Android---2D图形及动画---Frame动画_第2张图片
  • 大小: 48 KB
  • Frames.zip (419.1 KB)
  • 下载次数: 154
  • 查看图片附件

你可能感兴趣的:(玩转Android---2D图形及动画---Frame动画)