アプリケーション起動時にタイトルロゴをフェードインさせるページの実装方法です。

黒一色の画面から白バックのロゴ画像がフェードインします。
アニメーションの定義方法はこちらを参考にしました。
http://android.roof-balcony.com/resource/animation/
■res/anim/にアニメーション定義のXMLファイルを作成。
■レイアウトのXMLファイルは以下のとおりです。
今回はLinearLayoutごとフェードインさせます。
■Javaファイルの記述
onCreate()時にレイアウトとアニメーションのXMLを指定し、setAnimationListenerにセットします。
対象のアニメーションが終了したときにonAnimationEnd()がコールされ、次のアクティビティに移動します。
このアクティビティをManifestファイルで起動アクティビティに指定すると、
起動 -> 画像のフェードイン表示 -> メイン画面(メニュー画面など)
といったよく見る流れの実装が可能です。
一旦アプリを中断し、再開した場合に再度ロゴアニメーションが表示されるのは鬱陶しいので
次のアクティビティを呼び出した後finish()をかけています。
画面遷移のアニメーションについてはXMLのみで実装する方法もあるらしいので、いずれ調査したいと思います。
アニメーションの定義方法はこちらを参考にしました。
http://android.roof-balcony.com/resource/animation/
■res/anim/にアニメーション定義のXMLファイルを作成。
android:duration="3000"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:interpolator="@android:anim/decelerate_interpolator"
/>
■レイアウトのXMLファイルは以下のとおりです。
android:id="@+id/MainLayout"
android:orientation="vertical"
android:layout_width="320dp"
android:layout_height="455dp"
android:background="#FFFFFF"
>
android:id="@+id/ImageLogo"
android:src="@drawable/******"
android:layout_gravity="center"
android:layout_marginTop="180dp"
android:layout_width="272dp"
android:layout_height="76dp"
>
今回はLinearLayoutごとフェードインさせます。
■Javaファイルの記述
package ***********************************;
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.AnimationUtils;
import android.widget.LinearLayout;
public class **** extends Activity implements AnimationListener{
private Animation fadeIn;
private LinearLayout mainLayout;
private Intent intent;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.****);
mainLayout = (LinearLayout)findViewById(R.id.MainLayout);
fadeIn = AnimationUtils.loadAnimation(this, R.anim.****);
fadeIn.setAnimationListener(this);
mainLayout.setAnimation(fadeIn);
}
@Override
public void onAnimationEnd(Animation animation) {
// フェードイン完了後次の画面へ
if (animation == fadeIn) {
intent = new Intent(this, ****.class);
startActivity(intent);
finish();
}
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
}
onCreate()時にレイアウトとアニメーションのXMLを指定し、setAnimationListenerにセットします。
対象のアニメーションが終了したときにonAnimationEnd()がコールされ、次のアクティビティに移動します。
このアクティビティをManifestファイルで起動アクティビティに指定すると、
起動 -> 画像のフェードイン表示 -> メイン画面(メニュー画面など)
といったよく見る流れの実装が可能です。
一旦アプリを中断し、再開した場合に再度ロゴアニメーションが表示されるのは鬱陶しいので
次のアクティビティを呼び出した後finish()をかけています。
画面遷移のアニメーションについてはXMLのみで実装する方法もあるらしいので、いずれ調査したいと思います。