如何在android中显示多个图像作为启动画面?

时间:2011-06-03 00:05:30

标签: android screen splash

我对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中的图像?

谢谢!

3 个答案:

答案 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();

 }
}