啟動頁也稱之為閃屏頁,就是在android應(yīng)用第一次啟動時展現(xiàn)的頁面浮梢,值得一提的是大家不要理解為引導(dǎo)頁(一般是應(yīng)用首次安裝或者更新的時候出現(xiàn))
sart_jianshu.png
其實這個界面的實現(xiàn)很簡單报慕,代碼量也很少
- 第一步,配置AndroidManifest文件剩辟,將他作為應(yīng)用入口
<activity
android:name=".activity.StartActivity"
android:screenOrientation="portrait"
android:theme="@style/StartTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
- 第二步,配置xml文件往扔,設(shè)置background或者放置一個ImageView設(shè)置scaleType都行贩猎,這里我采用最簡單的方式
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@mipmap/start_jianshu"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
- 第三步,設(shè)置代碼萍膛,只需要做一個延遲跳轉(zhuǎn)到登錄或者是主界面就行了
public class Start1Activity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(StartActivity.this,MainActivity.class));
}
}, 3000);
}
}
這樣寫啟動頁吭服,是存在很大的問題的
- 問題場景:當用戶誤點了你的應(yīng)用圖標,想趕緊撤回去蝗罗,于是點擊了back鍵艇棕,過了幾秒鐘我在其他的應(yīng)用瀏覽,突然跳轉(zhuǎn)到你的應(yīng)用 這種用戶體驗相當不好吧
- 問題分析:雖然你的activity銷毀了串塑,你的handler卻還存在沼琉,雖然你已退出啟動頁,延遲加載的代碼依然會執(zhí)行
- 優(yōu)化后代碼拟赊,當用戶點擊back鍵刺桃,移除handler回調(diào)
public class StartActivity extends AppCompatActivity {
private Handler handler;
private MyThread thread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
ButterKnife.bind(this);
handler = new Handler();
thread = new MyThread();
handler.postDelayed(thread, 3000);
}
private class MyThread implements Runnable {
@Override
public void run() {
startActivity(new Intent(StartActivity.this, MainActivity.class));
finish();
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
handler.removeCallbacks(thread);//移除回調(diào)
}
}
當然,這不是唯一的處理方案吸祟,類似瑟慈,愛奇藝桃移,網(wǎng)易新聞這種就稍微流氓一些,當用戶誤點以后葛碧,是不允許用戶返回的借杰,是直接禁用了back鍵,只能通過殺死進程的方式退出了进泼。
針對啟動頁圖片選擇的建議
當然蔗衡,這個問題不是我們開發(fā)能決定的,圖一般都是設(shè)計給的乳绕,android加載大圖的時候容易oom绞惦,在啟動頁加載大圖,會導(dǎo)致啟動短暫的黑屏洋措,白屏济蝉,增加內(nèi)存消耗,低端機上可能直接oom菠发,使用純背景加logo的方式王滤,會比直接用一張大圖好得多,即使真的需要用圖片滓鸠,也不要動不動幾百K或者達到1M以上的圖片雁乡,可以使用較小一點分辨率,可以通過tinypng這個網(wǎng)站先將圖片壓縮一下
歡迎轉(zhuǎn)載糜俗,轉(zhuǎn)正請注明原文出處