最終更新:
moonlight_aska 2013年03月03日(日) 23:26:21履歴
アニメーションのタイプは大きく2つに分類できる.
1.Tweenedアニメーション:1つのイメージを連続に変化させる
2. Frame-By-Frameアニメーション:イメージを順番に並べてアニメーションする
Frame-By-Frameアニメーションを行うには, AnimationDrawableクラスを利用する.

(出典:Android版「美人時計」より)
1.Tweenedアニメーション:1つのイメージを連続に変化させる
2. Frame-By-Frameアニメーション:イメージを順番に並べてアニメーションする
Frame-By-Frameアニメーションを行うには, AnimationDrawableクラスを利用する.

(出典:Android版「美人時計」より)
- Animation05.java
- onWindowFocusChangedメソッドをオーバーライドする.
- findViewByIdメソッドで, 指定したリソースインデックスのIDに対応したImageViewのインスタンスを取得する.
- View#setBackgroundResourceメソッドでアニメーションのリソースを設定する.
- View#getBackgroundメソッドで, AnimationDrawableのインスタンスを取得する.
- AnimationDrawable#startメソッドでアニメーションを開始する.
package com.moonlight_aska.android.animation05;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.widget.ImageView;
public class Animaion05 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
// TODO Auto-generated method stub
super.onWindowFocusChanged(hasFocus);
ImageView imgView = (ImageView)findViewById(R.id.tokei);
/ リソース設定
imgView.setBackgroundResource(R.drawable.animation);
AnimationDrawable animDraw = (AnimationDrawable)imgView.getBackground();
animDraw.start();
}
}
- res/drawable/animation.xml
- animation-listの属性
android:oneshot | true:1回, false:リピート |
android:drawable | リソースへの参照 |
android:duration | アニメーションの間隔(ms) |
- 画像(bijintokeiXXX.jpg)はres/drawableフォルダの下に置く.
<?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/bijintokei0858" android:duration="10000" />
<item android:drawable="@drawable/bijintokei0859" android:duration="10000" />
<item android:drawable="@drawable/bijintokei0900" android:duration="10000" />
<item android:drawable="@drawable/bijintokei0901" android:duration="10000" />
<item android:drawable="@drawable/bijintokei0902" android:duration="10000" />
</animation-list>
- res/layout/activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ImageView android:id="@+id/tokei"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:contentDescription="@string/content" />
</RelativeLayout>
コメントをかく