Frame动画

创建一个AnimationDrawable对象来表示Frame动画,然后通过addFrame方法把每一帧要显示的内容添加进去,最后通过start方法就可以播放这个动画了。

同时还可以通过setOneShot方法来设置是否重复播放。

public class GameView extends View
{
    //定义AnimationDrawable动画
    private AnimationDrawable frameAnimation = null;
    Context mContext = null;

    //定义一个drawable对象
    Drawable mBitAnimation = null;
    public GameView(Context context)
    {
        super(context);

        mContext = context;

        //实例化AnimationDrawable对象
        frameAnimation = new AnimationDrawable();

        //装载资源,这里用一个循环装载所有名字类似的资源,如a1....15.jpg的图片
        for(int i = 1; i <= 15; i++)
        {
            int id = getResources().getIdentifier("a" + i, "drawable",mContext.getPackageName());
            mBitAnimation= getResources().getDrawable(id);
            //为动画添加1帧,参数mBitAnimation是该帧的图片,该帧显示的时间,按毫秒计算
            frameAnimation.addFrame(mBitAnimation,500);
        }

        //设置播放模式是否循环
        frameAnimation.setOneShot(false);

        //设置本类将要显示这个动画
        this.setBackgroundDrawable(frameAnimation);
    }

    public  void onDraw(Canvas canvas)
    {
        super.onDraw(canvas);
        //开始播放动画
        frameAnimation.start();
    }
}
activity.java:

public class Activity01 extends AppCompatActivity
{
    private GameView mGameView = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //实例化GameView对象
        this.mGameView = new GameView(this);
        //设置显示为我们自定义的View(GameView)
        setContentView(mGameView);
    }
}

其实还可以通过xml布局文件来实现Frame动画。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值