Android app开发 如何添加启动界面

打开任意的一个app时,其中大部分都会显示一个启动界面,于我而言印象最深的就是微信的大地球了,启动界面通常情况下展示出的都是自家的logo,但也有甚者则直接把广告放到了上面。

在这里为大家提供两种不同的设置方式:

一种是两个Activity实现,即需要一个启动界面的Activity和一个启动界面执行完后跳转到的Activity

另一种则是由一个Ativity实现,但相对代码量也增加了一些。

下面则开始介绍两种设置启动画面的方式:
第一种(两个Activity):

启动界面的Activity

public class SplashActivity extends Activity{
    
    private static int SPLASH_DISPLAY_LENGHT= 2000;    //延迟2秒
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        getWindow().requestFeature(Window.FEATURE_NO_TITLE);//去掉标题
        setContentView(R.layout.activity_splash);
        new Handler().postDelayed(new Runnable() {
            public void run() {
                Intent intent = new Intent(SplashActivity.this, MyViewpager.class);	//第二个参数即为执行完跳转后的Activity
                startActivity(intent);
                SplashActivity.this.finish();   //关闭splashActivity,将其回收,否则按返回键会返回此界面
            }
        }, SPLASH_DISPLAY_LENGHT);
    }
}

启动界面对应显示的布局文件

<LinearLayout
        android:id="@+id/splashScreen"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical">
        <ImageView
            android:id="@+id/iv_image"
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:src="@mipmap/icon"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/app_name"
            android:gravity="center"
            android:textSize="24sp"
            android:textColor="#2B2929"
            android:layout_marginTop="20dp"/>
        
    </LinearLayout>

跳转后的Activity在这里就不加以赘述了,只要将你想跳转的Activity类在启动界面的Activity类里添加就行,具体添加位置上述代码中有注释

第二种(一个Activity):
public class MainActivity extends Activity {
    
    private LinearLayout splash;
    private ImageView iv_image;
    
    private static final int STOPSPLASH = 0;
    private static final long SPLASHTIME = 1000;
    
    private Handler splashHandler = new Handler(){
        public void handleMessage(Message msg){
            switch (msg.what){
            case STOPSPLASH:
                SystemClock.sleep(4000);   //休眠4s
                splash.setVisibility(View.GONE);
                break;
            }
            super.handleMessage(msg);
        }
    };
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        splash = (LinearLayout) findViewById(R.id.splashScreen);
        
        Message msg = new Message();
        msg.what = STOPSPLASH;
        splashHandler.sendMessageDelayed(msg, SPLASHTIME);//设置在SPLASHTIME时间后,发送消息
    }
}
温馨提示:

最后别忘了将Activity在AndroidManifest.xml中进行注册哦(千万记住启动界面要第一个执行)

推荐使用第一种方式进行设置

参考文章:android 之 启动画面的两种方法

发布了35 篇原创文章 · 获赞 37 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_43802738/article/details/92813458