iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 11
2
Software Development

Android animation 30天上手系列 第 11

Day11 Frame Animation

  • 分享至 

  • xImage
  •  

Frame Animation(逐格動畫)

Frame Animation 就是把很多張圖片串起來變成動畫。
Frame animation

步驟:
1.設定動畫的圖片集合
2.在Activity啟動動畫。

1.設定動畫的圖片集合

在res/drawable,新增frame_animation.xml
裡的每個item代表一張圖片。待會我們就會將這些圖片串成一個動畫。

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/selected"
    android:oneshot="false">
    <item
        android:drawable="@drawable/circle"
        android:duration="500" />
    <item
        android:drawable="@drawable/circle2"
        android:duration="500" />
    <item
        android:drawable="@drawable/circle3"
        android:duration="500" />
    <item
        android:drawable="@drawable/circle4"
        android:duration="500" />
    <item
        android:drawable="@drawable/circle5"
        android:duration="500" />
    <item
        android:drawable="@drawable/circle6"
        android:duration="500" />
</animation-list>

2.在Activity 啟動動畫。

步驟1:將圖片背景轉為AnimationDrawable
步驟2:AnimationDrawable.start(),開始動畫

imageView.setBackgroundResource(R.drawable.frame_animation)

start.setOnClickListener {

    //步驟1:將圖片背景轉為AnimationDrawable
    val frameAnimation = imageView.background as AnimationDrawable

    //步驟2:AnimationDrawable.start(),開始動畫
    frameAnimation.start()
}

stop.setOnClickListener {
    val frameAnimation = imageView.background as AnimationDrawable

    //結束動畫
    frameAnimation.stop()
}

Frame Animation 是一個比較簡單的動畫。實際上逐格動畫只會用在較小的動畫效果,如果複雜的動畫或是圖片數較多的就不建議了。載入太多的圖片也可能會造成OOM。

完整程式:https://github.com/evanchen76/FrameAnimation


上一篇
Day10 動畫範例:CustomSelector
下一篇
Day12 LayoutAnimation
系列文
Android animation 30天上手30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言