Kotlinで地図アプリ（ゴミ拾いアプリ）。（18日目）オープニングアニメーションを作成（AnimationDrawable）


#今日やった事

・オープニングアニメーションを作成
・タイマーダイアログの時間を設定画面から変更


#オープニングアニメーションを作成

AnimationDrawableを使い、オープニングアニメーションを作ってみます。

オープニングアニメーション用のlayoutを作成

[res]
-[layout]
-[anime.xml]

```xml:anime.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/ImageView01"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>
```

アニメーション用のxml

[res]
-[drawable]
-[android_animation.xml]

```xml:android_animation.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="true">
    <item android:drawable="@drawable/tinoop01" android:duration="170" />
    <item android:drawable="@drawable/tinoop02" android:duration="170" />
    <item android:drawable="@drawable/tinoop03" android:duration="170" />
    <item android:drawable="@drawable/tinoop04" android:duration="170" />
    <item android:drawable="@drawable/tinoop05" android:duration="170" />
    <item android:drawable="@drawable/tinoop06" android:duration="170" />
    <item android:drawable="@drawable/tinoop07" android:duration="170" />
    <item android:drawable="@drawable/tinoop08" android:duration="170" />
    <item android:drawable="@drawable/tinoop09" android:duration="170" />
    <item android:drawable="@drawable/tinoop10" android:duration="170" />
    <item android:drawable="@drawable/tinoop11" android:duration="170" />
    <item android:drawable="@drawable/tinoop12" android:duration="1000" />
    <item android:drawable="@drawable/tinoop13" android:duration="180" />
    <item android:drawable="@drawable/tinoop14" android:duration="180" />
    <item android:drawable="@drawable/tinoop15" android:duration="180" />
    <item android:drawable="@drawable/tinoop16" android:duration="180" />
    <item android:drawable="@drawable/tinoop17" android:duration="700" />
    <item android:drawable="@drawable/tinoop18" android:duration="700" />
    <item android:drawable="@drawable/tinoop19" android:duration="700" />
    <item android:drawable="@drawable/tinoop20" android:duration="700" />
    <item android:drawable="@drawable/tinoop21" android:duration="700" />
    <item android:drawable="@drawable/tinoop22" android:duration="700" />
</animation-list>
```



```kotlin:MapsActivity.kt
    private lateinit var rocketAnimation: AnimationDrawable
        ....

    override fun onCreate(savedInstanceState: Bundle?) {
        ....
        setContentView(R.layout.anime)
        val rocketImage = findViewById<ImageView>(R.id.ImageView01).apply {
            setBackgroundResource(R.drawable.android_animation)
        }
        rocketAnimation.start()
```

#完成画面（GIF動画）
※クリックすると動画再生
![Intent.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503948/3f1fbe46-e48b-be79-8f26-f508072aa825.gif)


#参考サイト

https://developer.android.com/guide/topics/graphics/drawable-animation?hl=ja

https://stackoverflow.com/questions/2214735/android-animationdrawable-and-knowing-when-animation-ends

https://techbooster.org/android/ui/8329/