0

Android アプリ用に Eclipse でコーディングしています。アプリが起動する前に 5 秒間表示する必要があるスプラッシュ スクリーンを開発しました。どうやってするの?

4

10 に答える 10

6
       Thread timer=new Thread()
        {
            public void run() {
                try {
                    sleep(2000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                finally
                {
                    Intent i=new Intent(SplashScreen.this,MainActivity.class);
                    finish();
                    startActivity(i);
                }
            }
        };
        timer.start();
于 2013-10-21T10:02:11.283 に答える
3

非同期クラスを使用して doinbackground 関数でスリープ操作を実行し、ポスト関数で残りのタスクを実行します。

public class SplashScreenActivity extends Activity {
        private final int SPLASH_DISPLAY_LENGHT = 5000;
        @Override
            public void onCreate(Bundle icicle)
            {        super.onCreate(icicle);

            try{            
                this.requestWindowFeature(Window.FEATURE_NO_TITLE);
                setContentView(R.layout.activity_splashscreen);
            }catch(Exception e){
                e.printStackTrace();
            }
             new MyAsyncTask().execute();   
            }

         private class MyAsyncTask extends AsyncTask<Void, Void, Void>{
              @Override
              protected void onPreExecute(){
                    // show your progress dialog
              }
              @Override
              protected Void doInBackground(Void... voids){

                  try {
                        Thread.sleep(SPLASH_DISPLAY_LENGHT);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                return null;
              }

              @Override
              protected void onPostExecute(Void params)
              {


                   startActivity(new Intent(SplashScreenActivity.this, HomeActivity.class));

                    finish();
              }

           }



    }
于 2013-10-21T10:19:02.757 に答える
2

そのように使う

public class SplaceScreenActivity extends Activity {

    private static final int SPLASH_DISPLAY_TIME = 2500;

    // SplashScreen Splash;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splacescreen);

        new Handler().postDelayed(new Runnable() {
            public void run() {

                Intent intent = new Intent();
                intent.setClass(SplaceScreenActivity.this,
                        HomeScreenActivity.class);

                SplaceScreenActivity.this.startActivity(intent);
                SplaceScreenActivity.this.finish();

            }
        }, SPLASH_DISPLAY_TIME);
    }
}
于 2013-10-21T09:51:10.653 に答える
1
  Handler handler = new Handler();

        Runnable run = new Runnable() {

            public void run() {
                // TODO Auto-generated method stub
                startActivity(new Intent(SplaceActivity.this, New.class));
                overridePendingTransition(0, 0);
                finish();
            }
        };

        handler.postDelayed(run, 3000);   
于 2013-10-21T09:50:57.870 に答える
1

私は使用しますTimer

Timer timer = new Timer();
    timer.schedule(new TimerTask(){
        @Override
        public void run() {
            // TODO Auto-generated method stub
            Intent home_page = new Intent(Splash.class,HomePage.class);
            startActivity(home_page);
            finish();
        }}, 5000);
于 2013-10-21T10:27:42.233 に答える
1

以下のコードを試してください:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.splash);

        final int welcomeScreenDisplay = 2000;
        /** create a thread to show splash up to splash time */
        Thread welcomeThread = new Thread() {
            int wait = 0;

            @Override
            public void run() {
                try {
                    super.run();
                    /**
                     * use while to get the splash time. Use sleep() to increase
                     * the wait variable for every 100L.
                     */
                    while (wait < welcomeScreenDisplay) {
                        sleep(100);
                        wait += 100;
                    }
                } catch (Exception e) {

                } finally {
                    startActivity(new Intent(MainActivity.this,
                            HomeActivity.class));
                    finish();
                }
            }
        };
        welcomeThread.start();

    }

}
于 2013-10-21T10:29:24.260 に答える
0

ハンドラを使用

public class SplashActivity extends Activity {

int secondsDelayed = 5;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.splash);


    Message msg = new Message();
    msg.what = 0;
    mHandler.sendMessage(msg);
}


Handler mHandler = new Handler()
{
 public void handleMessage(android.os.Message msg) {

        switch(msg.what)
        {
        case 1:
        {
        startActivity(new Intent(SplashActivity.this, MainActivity.class));
        finish();
        }
        break;
        case 0:
        {
            Message ms = new Message();
            ms.what = 1;
            mHandler.sendMessageDelayed(ms,  secondsDelayed * 1000);
        }
        break;
        }

    };
};



protected void onDestroy() {

    super.onDestroy();
    mHandler.removeMessages(1);
};
}

:Donot make Splash screen for 5 sec user will get irritated make it for 2sec

于 2013-10-21T09:49:51.000 に答える