1

アクティビティ間にスプラッシュ スクリーンを表示しようとしています。このために、ImageView をロードし、一定時間後に可視性を GONE に設定するハンドラーを使用しています。

もう少し派手にして、loadAnimation でアニメーション化したかったのです。私が直面している問題は、ハンドラーが終了するとアニメーションが停止しますが、読み込み中の画像が画面から削除されないことです。代わりに、アクティビティ全体の背景として配置されます。

ハンドラーが停止した後にスプラッシュ画像を削除する方法を知りたいです。

以下は私のコードです:

private static final long SPLASHTIME = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main)
    ImageView splash = (ImageView)findViewById(R.id.splashscreen);
    final Animation a = AnimationUtils.loadAnimation(getBaseContext(),R.anim.progress_anim);
    a.setDuration(1000);
    splash.startAnimation(a);
    new Handler().postDelayed(new Runnable(){
            @Override
             public void run() {
               a.cancel();
               splash.setVisibility(View.GONE);

            }
        }, SPLASHTIME);
}

スプラッシュ画像の XML:

<ImageView 
    android:id="@+id/splashscreen" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:src="@drawable/loading_circle"
    android:layout_gravity="center"
    />
4

3 に答える 3

0

oncreate() ではなく、グローバルにスプラッシュを宣言するだけです。

于 2013-05-16T12:36:55.773 に答える
0

追加する必要があります

a.setFillAfter(true);

Runnable 内のコードの最後まで。

于 2013-08-09T03:45:56.520 に答える