正文
android:drawable
=
"@drawable/sp3"
android:duration
=
"200"
/>
<
item
android:drawable
=
"@drawable/sp4"
android:duration
=
"200"
/>
<
item
android:drawable
=
"@drawable/sp5"
android:duration
=
"200"
/>
<
item
android:drawable
=
"@drawable/sp6"
android:duration
=
"200"
/>
<
item
android:drawable
=
"@drawable/sp7"
android:duration
=
"200"
/>
<
item
android:drawable
=
"@drawable/sp8"
android:duration
=
"200"
/>
<
item
android:drawable
=
"@drawable/sp9"
android:duration
=
"200"
/>
animation-list
>
需要注意的是,根节点必须为
,
oneshot
属性代表是否只播放一次,true 为一次,false 为循环播放。
duration
属性表示此张图片滞留的时间,然后注意从上到下依次引用图片即可。
接着给一个 ImageView 设置这个动画:
<ImageView
android:id="@+id/iv_frame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bear_anim"
android:layout_centerInParent="true" />
最后一步当然是让动画跑起来了,需要用到 AnimationDrawable 对象:
AnimationDrawable animationDrawable = (AnimationDrawable) ivFrame.getBackground();
animationDrawable.start();
这样一个帧动画就展现在我们面前了,想让它停下来也很简单:
if(animationDrawable.isRunning()){
animationDrawable.stop();
}
在此补充下,bear_anim 同样可以设置给 src 属性,然后调用
getDrawble().start()
来播放动画,不过不推荐,具体原因自行查找下
src
和
background
属性的区别。
自然我们也可以用纯代码的方式实现,不过在此真的不推荐,显然 xml 的方式更省力,并且维护起来更方便。
补间动画
tween 动画也叫作补间动画,它可以在一定的时间内使 View 完成四种基本的动画,即
平移、缩放、透明度、旋转
,也可以将它们组合到一起播放出来。这里先提一下未来会研究的
属性动画
,值得注意的是, 无论是
帧动画
还是
补间动画
,都是把动画效果作用到 View 上,如果一个不是 View 的元素想实现动画,那这两种就无能为力了,只能请
属性动画
帮忙了。
并且补间动画仅仅是给 View 增加了动画的“假象”,比如一个按钮从左侧跑到了右侧,你在右侧是无法点击它的,但是这不代表 补间动画就没有用武之地了,当你需要的动画效果无外乎上面那四种动画,并且仅仅是展示的时候,补间动画就再合适不过了。
同样,补间动画的实现依然可以有两种方式,xml 定义或者是纯代码的方式,这里依然是建议使用 xml 的方式。
AlphaAnimation 透明度
在 res 文件夹下新建文件夹 anim ,新建文件 alpha_anim:
<alpha