继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Android 设置欢迎界面

woider
关注TA
已关注
手记 23
粉丝 209
获赞 1963

相信你已经见过很多 APP 启动时都会使用一张图片作为背景,比如微信的启动界面:
微信启动界面

这样做的目的主要是展示应用进入动画的同时方便后台加载内容。
相比让用户看着空荡荡的屏幕,准备一些图片无疑会更能吸引他们的注意力。
我将教你如何用最简单的方式去实现这个效果。


首先设计一个布局

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

通常只需要一张图片,越简单,越清晰,越好

然后创建一个活动

public class LaunchActivity extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_launch);       //加载启动图片
        new Thread(new Runnable() {     //开启子线程,后台处理耗时任务
            public void run() {
                /* 这里运行耗时任务,比如加载网络数据 */
                runOnUiThread(new Runnable() {          //返回主线程(UI线程)
                    public void run() {
                        Intent intent = new Intent(LaunchActivity.this, MainActivity.class);
                        startActivity(intent);          //跳转至 MainActivity
                        LaunchActivity.this.finish();   //结束当前的 Activity

                    }
                });
            }
        }).start();
    }
}

以这种方式产生的启动界面,会在后台任务处理完成后自动结束,适合数据的加载

public class LaunchActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载启动界面
        setContentView(R.layout.activity_launch);
        Handler handler = new Handler();
        //当计时结束时,跳转至主界面
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                startActivity(new Intent(LaunchActivity.this, MainActivity.class));
                LaunchActivity.this.finish();
            }
        }, 3000);   //持续时间为3秒
    }
}

以这种方式产生的启动界面,持续时间是稳定的,通常用于放置广告

最后对活动进行注册

    <application
        . . . >
        <activity android:name=".LaunchActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity">
        </activity>
    </application>

将 LaunchActivity 作为首先启动的活动,展示启动图片
将所有用到的 Activity 都在 AndroidManifest 中进行注册

动手试一试,说不定你的应用,气质就大不相同了呢。

打开App,阅读手记
19人推荐
发表评论
随时随地看视频慕课网APP

热门评论

我只能说扯淡,你在mainactivity里面一堆网络请求逻辑,splashactivity中只有startactivity后才会启动mainactivity,才开始执行加载逻辑,所以不管你在splashactivity里面停多久,只要不startacitivity,不显示mainacitvity,他的数据加载逻辑按这种方式永远不会执行,所以说根本就没什么用,这两种启动方式

我终于知道什么原因了,程序简单的时候,加载完毕,就直接跳进去了,第二种,比较好!

我好像按你第一种加载方式,图片显示不出来,我也不知道为啥,其他东西都没有错!

查看全部评论