米グーグルは12月6日、Androidの最新バージョン2.3(コードネーム「Gingerbread」を発表し、さらに、Android 2.3を搭載した端末「Nexus S」を発表しました。
いわゆる「おサイフケータイ」のような決済ができるNFC(Near Field Communication)機能や、SIP(Session Initiation Protocol)をサポートするIP電話機能、マルチスレッドゆえの課題となっていた複数アプリ・タスクの管理およびバッテリ管理機能の改良、3軸ジャイロスコープ対応など、開発者にとっても、ユーザーにとっても、さらに魅力的な機能が追加されました。
Android 2.3の新機能については、今後の連載で紹介していくので、ご期待ください。
さて、前回の「Androidアプリで“アニメーション”するための基礎知識」では、アニメーションを駆使して画面のパーツを動かしてみました。今回は、さらに一歩踏み込んで、画面遷移時にアニメーションを駆使した画面エフェクトを解説します。
Android 2.2では、標準でそれなりの画面エフェクトが備わっているので、独自の画面エフェクトは、「ほかのアプリに差を付けたい」「差別化したい」という場合に有効でしょう。
アニメーションの設定は、コーディングベースで行うものとXMLベースで行うものがありました。詳しくは前回の「アニメーションの4つの基本動作とアニメーション合成」と「アニメーションはXMLでリソース化できる」を参照してください。
画面エフェクトは、後者のXMLベースで行う方法を使用します。設定が少し複雑なので、サンプルアプリケーションを見ながら説明を読み、自分で変えながら動作を確認すると理解が早いと思います。
では、設定項目を1つずつ説明していきます。
画面遷移時に適用するアニメーションをXMLで用意します。
画面遷移時の役者として呼び出し元と呼び出し先のActivityがあり、それぞれの画面が開くとき、画面が消えるときのアニメーションを定義します。以下の表にまとめます。
名前 | 説明 |
---|---|
android:activityOpenEnterAnimation | 呼び出し先Activityが開くときのアニメーション |
android:activityOpenExitAnimation | 呼び出し元Activityが閉じるときのアニメーション |
android:activityCloseEnterAnimation | 呼び出し元Activityに戻るときのアニメーション |
android:activityCloseExitAnimation | 呼び出し先Activityが閉じるときのアニメーション |
表1 アニメーション定義名と説明 |
これら4つに対応するアニメーション定義XMLを「res/anim」に作成します。以下に今回のサンプルアプリの一部を説明します。
<?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromAlpha="0.0" android:toAlpha="1.0" />
<?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromAlpha="1.0" android:toAlpha="0.0" />
<?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromAlpha="0.0" android:toAlpha="1.0" />
<?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromAlpha="1.0" android:toAlpha="0.0" />
閉じるときにフェイドアウト、開くときにフェイドインを行うアニメーションです。今回のサンプルは必要な設定しか行っていないので、詳細な設定を行いたい場合は、前回の解説を参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.