Androidで動く携帯Javaアプリ作成入門
連載インデックスへ
Androidで動く携帯Javaアプリ作成入門(20)

Androidアプリで“アニメーション”するための基礎知識


株式会社イーフロー
緒方聡
2010/9/15

Androidはアニメーションを最初から重要視

- PR -

 「アニメーション」機能は、Androidが提供するそのほかの機能に比べると、実用度は低いように感じられますが、実はバージョン1.0よりも以前からアニメーションはAPIとして開発者に提供されています。

 その後、追加された機能に優先して、アニメーションが初めから用意されているのは、なぜでしょうか。


 それは、「Androidにとってアニメーション機能は重要であるから」にほかなりません。

 よくAndroidと比較されるiPhone/iPadは、素晴らしいアニメーションのエフェクトを持つGUIが備わっています。「いまどきのスマートフォンやモバイルデバイスは、カッコいいエフェクトが備わっていないとエンドユーザーに選ばれない」ということかもしれません。

 Androidはシステム全体を通してアニメーションが駆使できるように設計されています。「メニューを開く」「アクティビティを起動する」「ダイアログを表示する」というような基本的な動作にもアニメーションが使用されています。

 アクティビティの切り替え時や、ダイアログ表示時のアニメーションは次回解説します。今回は、GUIコンポーネントに対するアニメーションを見ていきましょう。

 以下のリンクより、今回のサンプルアプリケーションをダウンロードしておいてください。

Androidのアニメーションの4つの基本動作と合成

 Androidのアニメーションは、「android.view.animation」パッケージで実現します。このパッケージには、Animationクラスと、そのサブクラスが用意されています。

表1 アニメーション一覧
クラス名 概要
Animation すべてのアニメーションの基底の抽象クラス
AlphaAnimation フェイドイン/アウト
RotateAnimation 回転
ScaleAnimation 拡大・縮小
TranslateAnimation 移動
AnimationSet 複数のアニメーションを合成

 それでは、1つずつ見ていきましょう。

【1】フェイドイン/アウト「AlphaAnimation」

 アニメーション開始時とアニメーション終了時の透明度を設定して、フェイドイン/フェイドアウトを表現します。

 「AlphaAnimation」機能のみ、ソースコードと画面キャプチャを掲示しておきます。それ以外は、サンプルをダウンロードして中身をご覧ください。

package com.example.android.animation;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.widget.EditText;
 
public class AlphaAnimationExample extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.alpha_animation_example);
    }
 
    public void onClick(View v) {
        float fromAlpha = Float.parseFloat(((EditText)findViewById(R.id.fromAlpha)).getText().toString());
        float toAlpha = Float.parseFloat(((EditText)findViewById(R.id.toAlpha)).getText().toString());
 
        AlphaAnimation animation = new AlphaAnimation(fromAlpha, toAlpha);
        animation.setDuration(3000);
        v.startAnimation(animation);
    }
}

 ほかのサンプルのソースコードも同じ構造です。

図1 カメラプレビューの失敗例
図1 アニメーションの動作確認画面

 今回のサンプルアプリのアニメーション確認画面は、すべてこのようなレイアウトです。左側に並んでいる入力コンポーネントは、各Animationクラスのコンストラクタに渡す引数です。AlphaAnimationは開始透明度と終了透明度を指定可能で、図1は不透明から、90%透明にアニメーションします。

表2 AlphaAnimationのコンストラクタ
コンストラクタ引数 説明
float fromAlpha アニメーション開始時の透明度を0.0〜1.0の間で指定。0.0は完全透明、1.0は完全不透明
float toAlpha アニメーション終了時の透明度を0.0〜1.0の間で指定。0.0は完全透明、1.0は完全不透明

 すべてのAnimationクラスには複数のコンストラクタが用意されています。ここではコーディングレベルで使用する、最も引数の多い(ほかのオーバーロードコンストラクタを包含する)コンストラクタについて説明します。


1-2-3

 Index
第20回 Androidアプリで“アニメーション”するための基礎知識
Page1
Androidはアニメーションを最初から重要視
Androidのアニメーションの4つの基本動作と合成
  Page2
Animationの代表的なオプション8つ
  Page3
アニメーションに変化をもたらす「Interpolator」
アニメーションはXMLでリソース化できる
アニメーションを使う際の3つの落とし穴

Androidで動く携帯Javaアプリ作成入門 バックナンバー 連載インデックスへ»


ご意見、ご感想は Smart&Social 会議室へどうぞ


 Smart&Social フォーラム トップページへ


TechTargetジャパン

Smart & Social フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH