お世話になります。初めての投稿です。
ゲーム等に良くある、起動時のスプラッシュウィンドウを表示したいと思っています。
「フェードイン→ロゴ表示(数秒)→フェードアウト→トップ画面」の流れにしたいのですが、
以下の方法でxmlを記述したところ、当然ながらフェードイン→フェードアウト→トップ画面に
なってしまいます。
フェードイン時も表示しきる前に、フェードアウトが始まってる感じで意図している動作とは
また違っています。
稚拙な質問かも知れませんが宜しくお願い致します。
【animation.xml】
----------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="
http://schemas.android.com/apk/res/android">
<alpha
android:duration="3000"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:fillBefore="false"
android:fillAfter="false">
</alpha>
<alpha
android:duration="3000"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:fillBefore="false"
android:fillAfter="false">
</alpha>
</set>
----------------------------------------------------------
【SplashActivity.java(一部抜粋)】
public class SplashActivity extends Activity implements
AnimationListener {
private Animation fadeInOut;
private LinearLayout spLayout;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.splash);
spLayout = (LinearLayout)findViewById(R.id.MainLayout);
spLayout.setBackgroundColor(Color.WHITE);
fadeInOut = AnimationUtils.loadAnimation(this, R.anim.animation);
fadeInOut.setAnimationListener(this);
spLayout.setAnimation(fadeInOut);
}
@Override
public void onAnimationEnd(Animation animation) {
// フェードイン完了後次の画面へ
if (animation == fadeInOut) {
intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
}
}