Android动画篇——Drawable Animation(帧动画)

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()方法中处理比较合适,当然这也要看你的具体需求。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值