android 电话 状态栏,Android透明式状态栏、导航栏实现
有很多應(yīng)用有透明式狀態(tài)欄、導(dǎo)航欄,表現(xiàn)形式是在不同頁(yè)面里,狀態(tài)欄可以與最上面的背景圖片或者顏色保持一致。典型的案例就是手Q:(如圖所示)
很明顯,在手Q中主要的幾個(gè)頁(yè)面的標(biāo)題欄(ActionBar位置),都是湖藍(lán)色,而狀態(tài)欄也是湖藍(lán)色。QQ空間和好友資料的最上面的控件的自定義皮膚而狀態(tài)欄是以透明背景疊加在其上。(眼尖的博友已經(jīng)發(fā)現(xiàn)了圖片都是iPhone的,Android手Q界面差不多的,自行腦補(bǔ)!!!)
一、顯示效果
二話不說(shuō),先看一下透明狀態(tài)欄、導(dǎo)航欄的效果:(觸摸向上滑動(dòng),顯示出透明的狀態(tài)欄導(dǎo)航欄,一段時(shí)間后透明的狀態(tài)欄導(dǎo)航欄自動(dòng)隱藏)
二、實(shí)現(xiàn)功能
1.步驟:
1) 創(chuàng)建一個(gè)工程,主布局就先做一個(gè)ImageView,自己找個(gè)好看的圖片做src。
2) 在Activity重寫(xiě)的onCreate方法中獲得窗口視圖對(duì)象(DecorView)
3) 設(shè)置DecorView的SystemUiVisibility
4) 設(shè)置導(dǎo)航條、狀態(tài)欄的顏色–>透明
5) 獲取當(dāng)前Activity的ActionBar并隱藏
2.具體代碼和注釋:
獲取DecorView對(duì)象
@Override
protected void onCreate(Bundle savedInstanceState) {
...
View decorView = getWindow().getDecorView();
...
}
設(shè)置SystemUiVisibility
int option = View.SYSTEM_UI_FLAG_FULLSCREEN // 全屏標(biāo)記
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN // 布局全屏標(biāo)記,避免退出全屏模式時(shí)內(nèi)容被覆蓋
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // 隱藏導(dǎo)航欄標(biāo)記
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION // 布局隱藏導(dǎo)航欄標(biāo)記,同理
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY // 粘性沉浸體驗(yàn)
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE; // 確保上述標(biāo)記穩(wěn)定
// 此方法用來(lái)設(shè)置系統(tǒng)UI的可見(jiàn)性,系統(tǒng)UI包括狀態(tài)欄、ActionBar、導(dǎo)航欄
devorView.setSystemUiVisibility(option);
設(shè)置狀態(tài)欄、導(dǎo)航欄的顏色:
getWindow().setStatusBarColor(Color.TRANSPARENT);// Color.TRANSPARENT = 0 表示#00000000即透明顏色
getWindow().setNavigationBarColor(Color.TRANSPARENT);
獲取本頁(yè)面的ActionBar并隱藏起來(lái)
ActionBar actionBar = getSupportActionBar(); // 注意:此處用的Activity繼承的是AppCompatActivity(它繼承的是FragmentActivity)
// 所以調(diào)用的是getSupport...方法,如果繼承Activity則直接調(diào)用get...方法
assert actionBar != null; // 這一句可以不理會(huì),反正我是Ctrl + F1提示出來(lái)的,意思其實(shí)是判斷如果actionBar不為空則向下執(zhí)行。
actionBar.hide();
注意:最后一點(diǎn)注意事項(xiàng)是:只支持Android API 21以上的手機(jī)
三、來(lái)點(diǎn)花式透明的效果:
這個(gè)花式效果其實(shí)還是很實(shí)用的。因?yàn)橥ǔR[藏狀態(tài)欄和導(dǎo)航欄的情況是看視頻或者打游戲。一般都是橫屏,因此做一個(gè)橫屏的效果。關(guān)于橫豎屏切換以及屏幕方向鎖定可以參看我的下一篇博客。
總結(jié)
以上是生活随笔為你收集整理的android 电话 状态栏,Android透明式状态栏、导航栏实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c语言的简单题目,C语言的一些简单题目,
- 下一篇: android 加载html6,WebV