Android Splash屏幕示例

时间:2020-02-23 14:29:17  来源:igfitidea点击:

在本教程中,我们将看到如何创建Android Splash屏幕。

Android Splash屏幕只不过是屏幕,只要一些背景任务(例如从数据库获取数据,加载图像)正在进行时出现。
这些任务通常很长时间任务,我们可以显示Splash屏幕(加载动画)。
Splash屏幕可以是应用程序图标,徽标,打字机。
后台任务完成后,将被调用另一个活动。

例如:当Xender应用程序加载时,我们将看到如下屏幕。

第1步:创建项目

创建一个Android应用程序ProjectNamed"Splashscreexampleapp"。

第2步:将任何图像放在带有名称"Splash_Logo"的Drawable文件夹中

第3步:创建启动屏幕布局文件

  • 转到res - >布局
  • 右键单击布局
  • 单击"新建 - >文件"。
  • 创建一个名为"splash_screen.xml"的文件,并在splash_screen.xml中粘贴以下代码。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
 android:layout_height="match_parent" android:paddingLeft="16dp"
 android:paddingRight="16dp"
 android:paddingTop="16dp"
 android:paddingBottom="16dp">
 
 <ImageView
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:src="@drawable/splash_logo"
 android:layout_gravity="center"
</LinearLayout>

第4步:创建Splashactivity

package com.theitroad.splashscreenexampleapp;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
 
import com.theitroad.splashscreenexampleapp.R;
 
public class SplashActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash_screen);
 
        //creating new thread just for demonstration of background tasks
        Thread t=new Thread() {
            public void run() {
 
                try {
                    //sleep thread for 10 seconds
                    sleep(10000);
 
                    //Call Main activity
                    Intent i=new Intent(SplashActivity.this, com.theitroad.splashscreenexampleapp.MainActivity.class);
                    startActivity(i);
 
                    //destroying Splash activity
                    finish();
 
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        };
 
        //start thread
        t.start();
    }
}

如上所述创建Splashactivity。
我们正在创建一个新的线程,并呼叫睡眠10秒。
实际上,这将被实际任务所替换,例如从数据库或者加载图像获取数据。

第5步:创建布局

更改RES - >布局 - > Activity_main.xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 tools:context="com.theitroad.splashscreenexampleapp.MainActivity">
 
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Hello World from theitroad.com" 
</RelativeLayout>

第6步:创建MainActivity

更改src/main/packageName/mainActivity.java如下:

package com.theitroad.splashscreenexampleapp;
 
import android.app.Activity;
import android.os.Bundle;
<span style="background-color: #e4e4ff; color: navy; font-weight: bold;">import android.support.v7.app.AppCompatActivity;
import com.theitroad.splashscreenexampleapp.R; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }

它是Helloworld应用程序提供的默认主动。

第7步:更改androidmanifest.xml

我们需要将启动器活动作为SplashActive将启动器活动汇总,因此我们需要在App - > SRC - > Main - > AndroidManifest.xml中进行以下更改:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.theitroad.splashscreenexampleapp">
 
 <application
 android:allowBackup="true"
 android:icon="@mipmap/ic_launcher"
 android:label="@string/app_name"
 android:supportsRtl="true"
 android:theme="@style/AppTheme">
 <activity
 android:name="com.theitroad.splashscreenexampleapp.SplashActivity"
 android:label="@string/app_name"
 android:screenOrientation="portrait">
 <intent-filter>
 <action android:name="android.intent.action.MAIN" 
 
 <category android:name="android.intent.category.LAUNCHER" 
 </intent-filter>
 </activity>
 <activity android:name=".MainActivity"
 android:label="@string/app_name">
 </activity>
 
 </application>
 
</manifest>