Androidアプリで“アニメーション”するための基礎知識Androidで動く携帯Javaアプリ作成入門(20)(1/3 ページ)

» 2010年09月15日 00時00分 公開
[緒方聡株式会社イーフロー]

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

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

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


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

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

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

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

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

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

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

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

 それでは、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%透明にアニメーションします。

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

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



       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。