如何在安卓系统中显示欢迎界面?

3

您好,我希望有一个屏幕,上面显示我的标志,持续2-3秒后再进入主程序。

我该如何实现这个功能?

3个回答

3

这是一个简单的启动画面实现:

public class SplashScreen extends Activity {


    private Handler mHandler;

    private long delay = 1000;
    private int i = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_splash_screen);

        Timer timer = new Timer();
        timer.schedule(task, delay);
    }


    TimerTask task = new TimerTask() {
        @Override
        public void run() {

        Intent in = new Intent().setClass(SplashScreen.this,
                        LoginActivity.class).addFlags(
                        Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(in);
        finish();

        }
    };

}

变量delay表示在切换到其他活动之前,您的splashScreen Activity的暂停时间。



0

这里我附上了一个完整的代码,用于初始化基于位置的应用程序的闪屏。

public class splashScreen extends Activity {

private LocationManager locationManager = null;
private LocationListener locationListener = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.splash);
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    locationListener = new MyLocationListener();
    // Start the Animation of SplashScreen
    new Handler().postDelayed(new Runnable() {
        public void run() {
            ImageView imageView = (ImageView) findViewById(R.id.splashImageView);
            AnimationDrawable animation = (AnimationDrawable) imageView.getDrawable();
            animation.start();
        }
    }, 500);
    // Obtain user's location
    new Handler().post(new Runnable() {         
        public void run() {
            locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            String locationProvider = LocationManager.GPS_PROVIDER;
            locationManager.requestLocationUpdates(locationProvider, 1000, 0, locationListener);
            try { wait(5000); } catch (Exception e) {}
            if(locationManager != null) {
                locationManager.removeUpdates(locationListener);
            }
        }
    });
    // Start the Tabs screen.
    new Handler().postDelayed(new Runnable() {
        public void run() {
            Bundle extras = new Bundle();
            extras.putDouble(Constants.LATITUDE, ((MyLocationListener)locationListener).getLat());
            extras.putDouble(Constants.LONGITUDE, ((MyLocationListener)locationListener).getLng());
            Intent intent = new Intent(splashScreen.this, MainActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            intent.putExtras(extras);
            startActivity(intent);
        }
    }, 5000);
}

}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接