次のコードは、私のアプリでスプラッシュ画面を表示するためのコードです。アクティビティが読み込まれたときにデフォルトで表示され、画像を同じアクティビティで別の画像に変更する必要があります。私は色が違う最初のイメージのような別のイメージを持っています。数秒後にその画像の画面を変更したかったのです。Android - 実行時に数秒後に画像ビューソースを変更する
私はこれを私のコードで行っています。
package com.ruchira.busguru;
import android.media.MediaPlayer;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.RelativeLayout;
public class SplashScreen extends Activity {
ImageView imgBus;
MediaPlayer introSound, bellSound;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
imgBus = (ImageView) findViewById(R.id.imgBus);
imgBus.setImageResource(R.drawable.blackbus);
introSound = MediaPlayer.create(SplashScreen.this, R.raw.enginestart);
introSound.start();
Thread timer = new Thread(){
public void run(){
try{
sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}finally{
imgBus.setImageResource(R.drawable.bluekbus);
}
}
};
timer.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.splash_screen, menu);
return true;
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
introSound.stop();
finish();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
introSound.stop();
finish();
}
}
が、問題は、プログラムが言っスレッドで実行することにより、停止している...
「android.view.ViewRoot $ CalledFromWrongThreadException:ビュー階層を作成しただけ元のスレッドは、その見解に触れることができます。 "
このターゲットをどのように達成できますか?誰もこの問題を解決するのを助けてくれますか?私はアンドロイド開発に新しいです。
ありがとう。