Android(安卓)动画总结-帧动画
16lz
2021-01-25
帧动画就不多解释了.
如果需要一进页面就播放帧动画有一点要注意, 如果直接在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
更多相关文章
- 安全新手入坑——HTML标签
- Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
- 获取Android系统中全部正在运行的程序
- Android跨进程唤醒APP,启动指定页面
- Android进入APP判断引导页是否显示.
- Android(安卓)Service 之四 问题总结
- 关于android中获取横竖瓶状态
- android keydown touch事件传递
- Android(安卓)Fragment详解(二):Fragment创建及其生命周期