帧动画就不多解释了.

如果需要一进页面就播放帧动画有一点要注意, 如果直接在onCreate方法启动有可能导致缺少后面的帧

两种方法可以避免

在onWindowFocusChanged里面启动

 @Override    public void onWindowFocusChanged(boolean hasFocus) {        super.onWindowFocusChanged(hasFocus);        mFrameAnim.start();    }

addIdleHandler

getMainLooper().myQueue().addIdleHandler(new MessageQueue.IdleHandler() {   @Override    public boolean queueIdle() {        mFrameAnim.start();        return false;    }});

完整代码:

FrameAnimActivity

public class FrameAnimActivity extends AppCompatActivity {    private ImageView mIvFramanim;    private Button mBtnStart;    private Button mBtnStop;    private AnimationDrawable mFrameAnim;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_frame_anim);        mIvFramanim = (ImageView) findViewById(R.id.iv_framanim);        mBtnStart = (Button) findViewById(R.id.btn_start);        mBtnStop = (Button) findViewById(R.id.btn_stop);        mFrameAnim = (AnimationDrawable) mIvFramanim.getBackground();        //另一种进入页面就显示动画解决方法        getMainLooper().myQueue().addIdleHandler(new MessageQueue.IdleHandler() {            @Override            public boolean queueIdle() {                mFrameAnim.start();                return false;            }        });    }    /*    * 如果需要进入页面就立即显示动画需要在onWindowFocusChanged方法调用*/    @Override    public void onWindowFocusChanged(boolean hasFocus) {        super.onWindowFocusChanged(hasFocus);//        mFrameAnim.start();    }    public void onClick(View view) {        switch (view.getId()) {            case R.id.btn_start:                mFrameAnim.start();                break;            case R.id.btn_stop:                mFrameAnim.stop();                break;            default:                break;        }    }    @Override    protected void onPause() {        super.onPause();        mFrameAnim.stop();    }}

xml中指定drawable和duration就可以了, 可以指定多个.

mframe_anim.xml

<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"    android:oneshot="false">    <item        android:drawable="@color/colorAccent"        android:duration="200" />    <item        android:drawable="@color/colorPrimary"        android:duration="200" />    <item        android:drawable="@color/colorPrimaryDark"        android:duration="200" />animation-list>

源码参见: http://download.csdn.net/detail/maimiho/9660930
Android 动画总结-Activity切换动画 http://write.blog.csdn.net/mdeditor
Android 动画总结-Layout动画 http://blog.csdn.net/maimiho/article/details/52888887
Android 动画总结-帧动画 http://blog.csdn.net/maimiho/article/details/52893291
Android 动画总结-补间动画 http://blog.csdn.net/maimiho/article/details/52893403
Android 动画总结-属性动画 http://blog.csdn.net/maimiho/article/details/52894023
Android 动画总结-ViewPropertyAnimator http://blog.csdn.net/maimiho/article/details/52894151
Android 动画总结-矢量动画 http://blog.csdn.net/maimiho/article/details/52894266

更多相关文章

  1. 安全新手入坑——HTML标签
  2. Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
  3. 获取Android系统中全部正在运行的程序
  4. Android跨进程唤醒APP,启动指定页面
  5. Android进入APP判断引导页是否显示.
  6. Android(安卓)Service 之四 问题总结
  7. 关于android中获取横竖瓶状态
  8. android keydown touch事件传递
  9. Android(安卓)Fragment详解(二):Fragment创建及其生命周期

随机推荐

  1. 多线程例子 android camera capture
  2. Android(安卓)图片拖动 放大
  3. android Progressbar使用
  4. Android(安卓)调用联系人列表,选择联系人
  5. Android(安卓)官方架构组件之 Lifecycle
  6. Android(安卓)GPS获取当前位置信息
  7. PullToRefreshScrollView和Banner
  8. Android(安卓)SDK and AVD Manage图标没
  9. android ProgressBar用法
  10. Android(安卓)studio 自定义view 画圆