相信你已经见过很多 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 中进行注册
动手试一试,说不定你的应用,气质就大不相同了呢。
热门评论
我只能说扯淡,你在mainactivity里面一堆网络请求逻辑,splashactivity中只有startactivity后才会启动mainactivity,才开始执行加载逻辑,所以不管你在splashactivity里面停多久,只要不startacitivity,不显示mainacitvity,他的数据加载逻辑按这种方式永远不会执行,所以说根本就没什么用,这两种启动方式
我终于知道什么原因了,程序简单的时候,加载完毕,就直接跳进去了,第二种,比较好!
我好像按你第一种加载方式,图片显示不出来,我也不知道为啥,其他东西都没有错!