android帧动画实现方式

来源:互联网 发布:手机股票行情大盘软件 编辑:程序博客网 时间:2024/05/29 16:34

一、xml文件方式

1、在res/drawable目录下创建xml'文件

<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android">        <item android:drawable="@drawable/alipay" android:duration="300" />        <item android:drawable="@drawable/coinlogo" android:duration="300" />        <item android:drawable="@drawable/close_pressed" android:duration="300" /></animation-list>

2、在代码中引用

package com.example.administrator.animation;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.MotionEvent;import android.widget.ImageView;public class MainActivity extends AppCompatActivity {    private AnimationDrawable animationDrawable;    /**     * ATTENTION: This was auto-generated to implement the App Indexing API.     * See https://g.co/AppIndexing/AndroidStudio for more information.     */    private ImageView imageView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        imageView = (ImageView)findViewById(R.id.animationImg);        imageView.setBackgroundResource(R.drawable.animation);        animationDrawable = (AnimationDrawable) imageView.getBackground();    }    @Override    public boolean onTouchEvent(MotionEvent event) {        if (event.getAction() == MotionEvent.ACTION_DOWN) {            new Thread(new Runnable() {                @Override                public void run() {                    try {                        Thread.sleep(1000);                        animationDrawable.start();                    } catch (Exception e) {                    }                }            }).start();            return true;        } else if (event.getAction() == MotionEvent.ACTION_UP) {            animationDrawable.stop();            return true;        }        return super.onTouchEvent(event);    }}


二、用代码直接实现不用xml文件

package com.example.administrator.animation;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.MotionEvent;import android.widget.ImageView;public class MainActivity extends AppCompatActivity {    private AnimationDrawable animationDrawable;    /**     * ATTENTION: This was auto-generated to implement the App Indexing API.     * See https://g.co/AppIndexing/AndroidStudio for more information.     */    private ImageView imageView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        imageView = (ImageView)findViewById(R.id.animationImg);        animationDrawable = new AnimationDrawable();
        animationDrawable.addFrame(getResources().getDrawable(R.drawable.alipay), 300);        animationDrawable.addFrame(getResources().getDrawable(R.drawable.close_pressed), 300);        animationDrawable.addFrame(getResources().getDrawable(R.drawable.coinlogo), 300);
        imageView.setBackground(animationDrawable);    }    @Override    public boolean onTouchEvent(MotionEvent event) {        if (event.getAction() == MotionEvent.ACTION_DOWN) {            new Thread(new Runnable() {                @Override                public void run() {                    try {                        Thread.sleep(1000);
                        animationDrawable.start();                    } catch (Exception e) {                    }                }            }).start();            return true;        } else if (event.getAction() == MotionEvent.ACTION_UP) {
            animationDrawable.stop();            return true;        }        return super.onTouchEvent(event);    }}