一、安卓手機 Android Splash
在安卓開發中啟動頁是非常重要的一個部分,它是 App 載入的第一畫面,也是用戶第一次接觸到 App 的地方,對於用戶體驗非常重要。Android Splash 也稱為啟動頁、閃屏頁或者歡迎頁,其作用是在應用程序啟動時,展示一個品牌標誌或其它信息,給用戶一個良好的第一印象。在應用的運行過程中,Splash 可以為用戶提供緩衝時間,以便載入其它主要 UI,從而加快應用程序的響應速度,保持應用程序的流暢體驗。
二、Android Splashscreen關不掉
有些情況下,啟動頁會有個定時自動關閉的功能,即 Splashscreen。但是有時候我們想要讓用戶手動關閉 Splashscreen,如何實現呢?在此給出代碼示例:
public class MainActivity extends Activity {
private boolean mIsBackKeyPressed = false;//記錄是否有首次按鍵
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0) {
mIsBackKeyPressed = false;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView splash = findViewById(R.id.img_splash);
splash.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();//點擊圖片關閉 Splash
}
});
}
@Override
public void onBackPressed() {
if (!mIsBackKeyPressed) {
Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
mIsBackKeyPressed = true;
mHandler.sendEmptyMessageDelayed(0, 2000);// 2s後恢復狀態
} else {
mHandler.removeMessages(0);
super.onBackPressed();
}
}
}
這裡的思路是通過記錄按下返回鍵的時間來判斷用戶是否在短時間內(2 秒)再次按下返回鍵,如果是,則直接退出應用程序。
三、Android Splash 界面
Android Splash 界面設計上要簡單、美觀、易操作,閃屏的顯示時間盡量不要太長,一般來說2到4秒左右的時間比較合適,大於5秒則會顯得比較無聊。此外,啟動頁的設計要與 App 整體 UI 風格相符,提升用戶體驗,留下好印象,更有利於 App 的推廣和用戶留存。
四、Android Splashscreen 白屏
有時候 Android Splashscreen 的啟動頁會出現白屏的情況,這樣會讓用戶覺得 App 相應速度慢,給用戶不好的體驗,為了解決這個問題,我們可以在 XML 布局文件中加入 Window 的背景顏色:
// 在這裡設置背景顏色
五、Android Splash Activity
Android Splash Activity 具體實現可以參考如下代碼:
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 載入 Splash 視圖
setContentView(R.layout.activity_splash);
// 向 Handler 延時發送啟動任務
mHandler.sendEmptyMessageDelayed(START_ACTIVITY, DELAY_TIME);
}
// 常量
private static final int START_ACTIVITY = 0;
private static final int DELAY_TIME = 2000; // 延時2秒
// Handler 消息處理
private Handler mHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
switch (msg.what) {
case START_ACTIVITY:
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
finish();
break;
}
return true;
}
});
}
六、Android Splashscreen 廣告
一些 App 在啟動頁展示廣告,為了提高用戶體驗,廣告的內容需要與 App 的主題相關。
Android Splashscreen 廣告可以用類似 Glide、Picasso 等框架實現:
ImageView image = findViewById(R.id.img_ad); Glide.with(this).load(adUrl).into(image);
這裡的思路是使用 Glide 載入廣告的圖片。
原創文章,作者:PDJD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133346.html
微信掃一掃
支付寶掃一掃