小编典典

如何制作启动画面?

all

我希望我的应用看起来更专业,所以我决定添加一个启动画面。

我应该如何进行实施?


阅读 94

收藏
2022-03-06

共1个答案

小编典典

老答案:

如何简单的闪屏

这个答案向您展示了如何在您的应用程序启动时显示一个固定时间的启动屏幕,例如品牌原因。例如,您可以选择显示启动屏幕 3
秒。但是,如果您想在可变时间(例如应用程序启动时间)显示闪屏,您应该查看 Abdullah
的答案https://stackoverflow.com/a/15832037/401025。但是请注意,应用程序在新设备上的启动可能非常快,因此用户只会看到一个糟糕的
UX 闪存。

首先,您需要在layout.xml文件中定义闪屏

  <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical" android:layout_width="fill_parent"
          android:layout_height="fill_parent">

          <ImageView android:id="@+id/splashscreen" android:layout_width="wrap_content"
                  android:layout_height="fill_parent"
                  android:src="@drawable/splash"
                  android:layout_gravity="center"/>

          <TextView android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Hello World, splash"/>

  </LinearLayout>

你的活动:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

public class Splash extends Activity {

    /** Duration of wait **/
    private final int SPLASH_DISPLAY_LENGTH = 1000;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.splashscreen);

        /* New Handler to start the Menu-Activity 
         * and close this Splash-Screen after some seconds.*/
        new Handler().postDelayed(new Runnable(){
            @Override
            public void run() {
                /* Create an Intent that will start the Menu-Activity. */
                Intent mainIntent = new Intent(Splash.this,Menu.class);
                Splash.this.startActivity(mainIntent);
                Splash.this.finish();
            }
        }, SPLASH_DISPLAY_LENGTH);
    }
}

就这样 ;)

2022-03-06