我对android很新。我想在android中连续显示两个图像(每个图像持续时间很短)作为启动画面。我能够显示单个图像,但很难显示另一个图像。
public class SplashScreen extends Activity {
/**
* The thread to process splash screen events
*/
private Thread mSplashThread;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Splash screen view
setContentView(R.layout.splash);
final SplashScreen sPlashScreen = this;
// The thread to wait for splash screen events
mSplashThread = new Thread(){
@Override
public void run(){
try {
Thread.sleep(1000);
}
catch(InterruptedException ex){
}
finish();
// Run next activity
Intent intent = new Intent();
intent.setClass(sPlashScreen, MainActivity.class);
startActivity(intent);
stop();
}
};
mSplashThread.start();
}
有没有办法可以替换ImageView中的图像?
谢谢!
答案 0 :(得分:2)
First read the first about 5 pages of this.当onCreate运行时,活动尚未显示。因此,您无法在onCreate中更改图像。在onStart运行之前,活动不可见。您可以在onCreate中设置图像,然后在onStart中启动一个AsyncTask,它将睡眠1秒钟,然后加载第二个图像然后再睡一秒钟,然后启动主屏幕。
答案 1 :(得分:1)
像这样创建一个小动画......
http://www.codeproject.com/KB/android/AndroidSplash.aspx
将两张图片逐一放在屏幕上显示......
快乐的编码!
答案 2 :(得分:0)
public class SplashScreen extends Activity {
private ImageView image;
private Thread splashTread;
private LinearLayout linear;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
linear = (LinearLayout) findViewById(R.id.splash_linear);
Drawable d = getResources()
.getDrawable(R.drawable.splashscreenlite);
linear.setBackgroundDrawable(d);
System.out.println("Image change");
}
};
splashTread = new Thread() {
@Override
public void run() {
try {
sleep(1500);
} catch (Exception e) {
} finally {
handler.sendEmptyMessage(1);
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
SplashScreen.this.finish();
startActivity(new Intent(SplashScreen.this,
Mainactivity.class));
}
}
}
};
splashTread.start();
}
}