C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です.

アニメーションのタイプは大きく2つに分類できる.
1.Tweenedアニメーション:1つのイメージを連続に変化させる
2. Frame-By-Frameアニメーション:イメージを順番に並べてアニメーションする
Frame-By-Frameアニメーションを行うには, AnimationDrawableクラスを利用する.


(出典:Android版「美人時計」より)

フレームアニメーション

  • Animation05.java
    • onWindowFocusChangedメソッドをオーバーライドする.
     注) AnimationDrawable#startメソッドは, onCreateやonStartメソッド内ではアニメーションしない.
    • findViewByIdメソッドで, 指定したリソースインデックスのIDに対応したImageViewのインスタンスを取得する.
    • View#setBackgroundResourceメソッドでアニメーションのリソースを設定する.
    • View#getBackgroundメソッドで, AnimationDrawableのインスタンスを取得する.
    • AnimationDrawable#startメソッドでアニメーションを開始する.
     注) アニメーションを停止する場合には, AnimationDrawable#stopメソッドを呼ぶ.
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
アニメーションの設定を行うXMLファイルである.
    • animation-listの属性
android:oneshottrue: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>



コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu


逆引き(基礎編)

画面表示/操作(49)

フラグメント(1)

逆引き(応用編)

Firebase(2)

AD



管理人/副管理人のみ編集できます