アニメーション時のwaitの設定について

411 views
Skip to first unread message

T.Sato

unread,
Nov 18, 2010, 3:17:20 AM11/18/10
to 日本Androidの会
お世話になります。初めての投稿です。
ゲーム等に良くある、起動時のスプラッシュウィンドウを表示したいと思っています。
「フェードイン→ロゴ表示(数秒)→フェードアウト→トップ画面」の流れにしたいのですが、
以下の方法で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();
}
}
}

awwa

unread,
Nov 18, 2010, 10:37:05 PM11/18/10
to android-g...@googlegroups.com

あわと申します。

ロゴの表示を「何も動かないアニメーション」として実現するという方法はいかがでしょうか?
それをonAnimationEnd()でつなげます。
アニメーションの種類は何でもいいとおもいます。

2010/11/18 17:17 "T.Sato" <tatsu...@gmail.com>:

T.Sato

unread,
Nov 18, 2010, 11:06:47 PM11/18/10
to 日本Androidの会
T.Satoです。

レスポンスありがとうございます。

わざわざアニメーションのリソースを2つ作って、
In/Outの間でwaitかけてみたりとやってたのですが、
なかなかうまくできなくて困ってましたが、
ご提示頂いた方法でうまくいきました。

感謝です:D

On 11月19日, 午後12:37, awwa <awwa...@gmail.com> wrote:
> あわと申します。
>
> ロゴの表示を「何も動かないアニメーション」として実現するという方法はいかがでしょうか?
> それをonAnimationEnd()でつなげます。
> アニメーションの種類は何でもいいとおもいます。
> 2010/11/18 17:17 "T.Sato" <tatsuya5...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages