Android动画篇——Drawable Animation(帧动画)
程序员文章站
2024-03-24 08:28:28
...
OverView
An object used to create frame-by-frame animations, defined by a series of Drawable objects, which can be used as a View object's background.
定义多帧画面连续播放构成了帧动画。帧动画的应用场景不多,主要用在过于复杂而无法用代码实现的gif效果,如一些复杂度比较高的loading效果等。
使用
帧动画的定义非常简单
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/loading_icon_1"
android:duration="70"/>
<item android:drawable="@drawable/loading_icon_2"
android:duration="70"/>
<item android:drawable="@drawable/loading_icon_3"
android:duration="70"/>
<item android:drawable="@drawable/loading_icon_4"
android:duration="70"/>
</animation-list>
以animation-list作为根节点,每一个item就是一帧动画drawable对应一张图片资源。android:oneshot="false"
指定只播放一次还是循环播放。
使用同样很简单帧动画一般作为View的背景或者src来使用:
<ImageView
android:id="@+id/drawable_anim_iv"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginTop="32dp"
android:src="@drawable/loading_animation_list"/>
需要注意的是即使设置为background了帧动画也不会自动播放,需要我们start一下。
AnimationDrawable animationDrawable = (AnimationDrawable)(drawableAnimIV.getDrawable());
if(animationDrawable.isRunning()){
animationDrawable.stop();
} else{
animationDrawable.start();
}
需要注意的是start()
方法不能用来Activity的onCreate中,因为此时页面还没渲染完。通常放到onWindowFocusChanged()
方法中处理比较合适,当然这也要看你的具体需求。
转载于:https://my.oschina.net/zhongsm/blog/3027532
上一篇: Java 对象占用内存大小
下一篇: Js动画-改变透明度(二)
推荐阅读
-
[Android动画] 帧动画-设置透明度( setAlpha)六
-
Android动画篇——Drawable Animation(帧动画)
-
Android 播放帧动画2
-
Android帧动画无效解决方案
-
Android动画之View(补间)动画和帧动画
-
Android动画之逐帧动画(Frame Animation)基础学习
-
Android动画之补间动画(Tween Animation)基础学习
-
Android 动画(View动画,帧动画,属性动画)详细介绍
-
Android动画之逐帧动画(Frame Animation)基础学习
-
Android动画之补间动画(Tween Animation)基础学习