Android實(shí)現(xiàn)通知欄透明的方法
這個(gè)特性是andorid4.4支持的,最少要api19才可以使用,也就是說如果Android的機(jī)子是低于4.4,沉浸通知欄是沒有效果的。下面介紹一下使用的方法,非常得簡單。
/** * 設(shè)置通知欄 這個(gè)方法在onCreate()實(shí)現(xiàn),如果是在父類的onCreate()中添加,即使所有繼承了該父類都會(huì)有沉浸通知欄。 */ public void initSystemBar() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(true); SystemBarTintManager tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintResource(R.color.red); } } /** * 設(shè)置通知欄的狀態(tài) * @param on */ @SuppressLint("InlinedApi") private void setTranslucentStatus(boolean on) { Window win = this.getWindow(); WindowManager.LayoutParams winParams = win.getAttributes(); final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; if (on) { winParams.flags |= bits; } else { winParams.flags &= ~bits; } win.setAttributes(winParams); }
在最后在布局文件中添加:android:fitsSystemWindows="true"
即可實(shí)現(xiàn)。
Android5.0全透明狀態(tài)欄效果,具體實(shí)例代碼如下所示:
實(shí)現(xiàn)上述效果的代碼如下:
public class MainActivity extends Activity { @SuppressLint("InlinedApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_NO_TITLE); if(VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT); window.setNavigationBarColor(Color.TRANSPARENT); } setContentView(R.layout.activity_main); } }
以上代碼寫的不好,還請各位大俠多多提出,同時(shí)希望本文分享對大家有所幫助。
- Android實(shí)現(xiàn)沉浸式通知欄通知欄背景顏色跟隨app導(dǎo)航欄背景顏色而改變
- Android開發(fā)之禁止下拉通知欄的方法
- android實(shí)現(xiàn)通知欄下載更新app示例
- android使用NotificationListenerService監(jiān)聽通知欄消息
- Android開發(fā)之使用通知欄顯示提醒信息的方法
- 關(guān)于Android中點(diǎn)擊通知欄的通知啟動(dòng)Activity問題解決
- Android程序版本更新之通知欄更新下載安裝
- android中創(chuàng)建通知欄Notification代碼實(shí)例
- Android不使用自定義布局情況下實(shí)現(xiàn)自定義通知欄圖標(biāo)的方法
- Android Fragment實(shí)現(xiàn)底部通知欄
相關(guān)文章
Android自定義View實(shí)現(xiàn)打鉤動(dòng)畫功能
本篇文章通過實(shí)例給大家分享了Android自定義View實(shí)現(xiàn)打鉤動(dòng)畫功能的過程和代碼分享,有興趣需要的學(xué)習(xí)下吧。2017-12-12Android如何基于坐標(biāo)對View進(jìn)行模擬點(diǎn)擊事件詳解
這篇文章主要給大家介紹了關(guān)于Android如何基于坐標(biāo)對View進(jìn)行模擬點(diǎn)擊事件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03Android WebView無法彈出軟鍵盤的原因及解決辦法
這篇文章主要介紹了Android WebView無法彈出軟鍵盤的原因及解決辦法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06recycleview實(shí)現(xiàn)拼多多首頁水平滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了recycleview實(shí)現(xiàn)拼多多首頁水平滑動(dòng)效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05Android入門之實(shí)現(xiàn)手工發(fā)送一個(gè)BroadCast
這篇文章主要通過手工來發(fā)送一條BroadCast進(jìn)一步來帶大家深入了解BroadCast,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Android有一定幫助,感興趣的可以收藏一下2022-12-12