⑴ 如何把安卓手機狀態欄變成透明的
建議可以去網路現成的帶有透明狀態欄的rom進行刷機,也可以自己做不過很麻煩。
1從手機里把狀態欄app提取出來復制到電腦上
2app後綴改成zip打開編輯提取一張狀態欄顏色的圖片用photoshop修改顏色至透明然後替換到zip壓縮包里
3封包之後放在手機安裝。
很多細節跟你講不清楚 不建議嘗試
⑵ android 隱藏狀態欄、標題欄、透明狀態欄的幾種方式
不管是繼承AppCompatActivity還是Activity都適用:
在style.xml定義
在AndroidManifest.xml裡面設置下theme屬性:
1.在style.xml定義
2.在AndroidManifest.xml裡面設置下theme屬性
⑶ Android 狀態欄的設置
先看一下默認的情況:
藍色一行是自定義的導航欄,
黑色的是自帶的 ActionBar ,也就是我們說的標題欄。
首先一般都會選擇去掉 ActionBar:
隱藏 actionbar 有很多種方法
這種方法是全局中隱藏了標題欄。
其實在我的手機更新系統之前,隱藏了 ActionBar 後,狀態欄和自定義的導航欄顏色是相匹配的,不知道什麼原因現在默認為灰色了。
上面使用的主題雖然隱藏了標題欄,但是和我們自定義的導航欄不搭,
這時候我們可以選擇用自定義的主題(Theme),來改變狀態欄:
在 values 下的 style.xml 中添加
或者在 onCreate 中:
上面兩行一般不一起設置,二選一即可。
第一行設置導航欄為透明,第二行將導航欄隱藏。
不推薦第二種做法,如果一個 Activity 中設置了隱藏導航欄而另一個 Activity 沒有,那兩者切換的時候會不好看。
融合的效果:
狀態欄和 app 頂部相融合了,如果標題欄是一張圖片效果會更好。
這里還有一個問題,狀態欄的文字和我們導航欄的文字重疊了,
我們可以選擇在布局文件的根元素中添加:
讓布局為狀態欄留出空間,就不會出現上面這張被狀態欄遮擋的情況。
如果像上面的例子是一樣的純色的標題欄,我們可以選擇直接改變狀態欄的顏色解決問題。
或者:
不顯示時間、電量等信息和文字:
同要可以用修改 Theme 來實現:
或者在 OnCreat() 中加入,還是要注意加在 setContentView() 的前面
如果想讓圖片全屏要注意設置為:
⑷ android導航欄與狀態欄顏色及透明度
首先創建一個空項目,如下圖
可以看到狀態欄是白字黑背景, 導航欄也是白圖標黑背景
嘿嘿, 我們先把狀態欄隱藏掉,在添加一個ImageView, 讓ImageView做背景(方便查看)
樣子如下:
將狀態欄和導航欄設置透明, 找到 Manifest.xml 文件, 在主題樣式中修改
android:statusBarColor 設置狀態欄背景色
android:navigationBarColor 同上
android:windowLightStatusBar 設置狀態欄文字色, true為深色, false為白色
android:windowLightNavigationBar 同上
android:windowTranslucentStatus 設置狀態欄半透明狀態, true為半透明, false為不透明
android:windowTranslucentNavigation 同上
最後兩個半透明狀態下面沒用, 可自己嘗試看效果
效果圖如下:
可以看到導航欄與狀態欄並沒有透明,原因是默認不能佔用狀態欄空間與導航欄空間,根布局背景為白色,所有這里顯示白色
可以通過設置 getWindow().getDecorView().setSystemUiVisibility() 來適配
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 適配狀態欄空間
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 適配導航欄空間
效果如下:
⑸ 如何實現Android透明導航欄
1.步驟:
1) 創建一個工程,主布局就先做一個ImageView,自己找個好看的圖片做src。
2) 在Activity重寫的onCreate方法中獲得窗口視圖對象(DecorView)
3) 設置DecorView的SystemUiVisibility
4) 設置導航條、狀態欄的顏色–>透明
5) 獲取當前Activity的ActionBar並隱藏
2.具體代碼和注釋:
獲取DecorView對象
java">@Override
protectedvoidonCreate(BundlesavedInstanceState){
...
ViewdecorView=getWindow().getDecorView();
...
}
設置SystemUiVisibility
intoption=View.SYSTEM_UI_FLAG_FULLSCREEN//全屏標記
|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//布局全屏標記,避免退出全屏模式時內容被覆蓋
|View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//隱藏導航欄標記
|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//布局隱藏導航欄標記,同理
|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY//粘性沉浸體驗
|View.SYSTEM_UI_FLAG_LAYOUT_STABLE;//確保上述標記穩定//此方法用來設置系統UI的可見性,系統UI包括狀態欄、ActionBar、導航欄devorView.setSystemUiVisibility(option);
設置狀態欄、導航欄的顏色:
getWindow().setStatusBarColor(Color.TRANSPARENT);//Color.TRANSPARENT=0表示#00000000即透明顏色
getWindow().setNavigationBarColor(Color.TRANSPARENT);
獲取本頁面的ActionBar並隱藏起來
ActionBaractionBar=getSupportActionBar();//注意:此處用的Activity繼承的是
AppCompatActivity(它繼承的是FragmentActivity)
//所以調用的是getSupport...方法,如果繼承Activity則直接調用get...方法
assertactionBar!=null;//這一句可以不理會,反正我是Ctrl+F1提示出來的,意思其實是判斷如果actionBar不為空則向下執行。
actionBar.hide();
注意:最後一點注意事項是:只支持Android API 21以上的手機
⑹ 如何將狀態欄設置透明
Android4.4以後, 可以將狀態欄設置為透明, 或者任意顏色
1. 全屏模式
最基本的在4.4版本之下會載入默認的values/styles.xml, 如果在4.4版本會載入 values-v19/styles.xml, 5.0以上載入 values-v21/styles.xml文件. 具體配置如下:
values/styles.xml
<style name="ImageTranslucentTheme" parent="AppTheme">
<!--在Android 4.4之前的版本上運行,直接跟隨系統主題--></style>123
values-v19/styles.xml
<style name="ImageTranslucentTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>1234
values-v21/styles.xml
<style name="ImageTranslucentTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowTranslucentStatus">false</item>
<item name="android:windowTranslucentNavigation">true</item>
<!--Android 5.x開始需要把顏色設置透明,否則導航欄會呈現系統默認的淺灰色-->
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
⑺ Android 狀態欄透明
前言:最近項目大量用到狀態欄透明,網上也出現很多庫可以直接拿來用,個人認為沒有必要那麼重引用到一個庫(有木有同學和我有一樣的想法),所以研究了一番,在此做個記錄加強記憶也便後期查閱,如果無意中有幸能幫助到你那就再好不過了。
Android 從 4.4 (SDK 19) 開始支持 系統欄(狀態欄+導航欄)半透明 效果:
翻譯一下就是:
TranslucentDecor 主題設置了兩個屬性 windowTranslucentStatus 和 windowTranslucentNavigation 都為 true,前者指定狀態欄半透明、後者指定導航欄半透明。
本文只探討「狀態欄」 。
默認樣式是這樣:
可見 Toolbar 和系統狀態欄之間有明顯的分界,我們要實現的效果是 Toolbar 和狀態欄背景統一,看起來像是一個整體(自行腦補圖片)。
按照官方文檔,我們自定義主題:
對應的 Activity 引用該主題:
我看來看看效果:
雖然實現了半透明,但是布局被狀態欄覆蓋,接下來在布局文件中設置 fitSystemWindows (注意加到根節點 ConstraintLayout 上):
來看看效果:
雖然布局沒有被狀態欄覆蓋,但是狀態欄背景顯然這不是我們想要的效果😭
為什麼狀態欄會這么奇怪?
文章開頭的定義中我們說了,布局文件會延伸到狀態欄所佔區域下, fitsSystemWindows 的作用是給對應的 View 增加 padding(這里以 ConstraintLayout 為例),目的是為了讓其內容不被狀態欄遮擋。
在我們的布局文件中 ConstraintLayout 沒有設置背景(默認白色),所以狀態欄默認的半透明背景色和 ConstraintLayout 的白色背景疊加,就變成了上圖中的效果。
【總結】兩個基本概念:
1、 windowTranslucentStatus 設置為true之後,狀態欄默認是 半透明 的(4.4 是黑色到透明色漸變,5.0+ 是純黑色半透明),和我們要求的 透明 相去甚遠。更重要的是,布局會延伸到狀態欄底下。
2、 android:fitsSystemWindows 簡單理解 就是 View 為了適配系統狀態欄和導航欄(不被遮擋)自動 增加 padding ,當然真正的實現原理比這復雜很多而且不同的 View 可以自定義實現方式。
所以,為了實現文章開頭提出來的「狀態欄透明」效果,我們需要處理:
設置 windowTranslucentStatus 為 true,讓狀態欄半透明。
在根節點設置 android:fitsSystemWindows 使其不被狀態欄遮擋。
Android 4.4 暫時沒有辦法去掉狀態欄的漸變。
Android 5.0+ 開始支持修改狀態欄顏色,設置透明色即可把半透明去掉。
看看效果:
我們看到即使狀態欄透明了,但是其底色是一片白,因為跟節點 ConstraintLayout 沒有設置背景,大多情況下我們不會給整個跟節點設置顏色,可以考慮把 android:fitsSystemWindows 設置到子 View 上,本例中是 AppBarLayout (5.0+ 無效,只能顯式給 AppBarLayout 加 padding,可以利用其背景色),實際項目中可靈活調整。
最終效果:
至此,完成狀態欄透明效果,網上有很多庫,實際上都是基於此原理,在此基礎上再自定義 View 做為狀態欄背景。
https://developer.android.com/about/versions/android-4.4.html
⑻ Android 沉浸式/透明式狀態欄、導航欄
Android 從4.4開始引進透明狀態欄和導航欄的概念,並且在5.0進行了改進,將透明變成了半透明的效果。雖然此特性最早出現在ios,但不否認效果還是很贊的。
至於4.4以下的手機,就不要考慮此特性了,好在4.4以下的手機份額已經非常小了。
我們先來看一下透明狀態欄的實現,兩種常見效果圖如下:
虛擬導航欄並不是所有的手機都有,華為的手機多比較常見,就是上圖屏幕底部按鈕那塊區域。設置導航欄和狀態欄類似:
這是官方的解釋,大致意思就是我們在布局的最外層設置 android:fitsSystemWindows="true",會在屏幕最上方預留出狀態欄高度的padding。
由於fitsSystemWindows屬性本質上是給當前控制項設置了一個padding,所以我們設置到根布局的話,會導致狀態欄是透明的,並且和窗口背景一樣。
但是多數情況,我們並不在根布局設置這個屬性,我們想要的無外乎是讓內容沉浸在狀態欄之中。所以我們經常設置在最上端的圖片背景、Banner之類的,如果是Toolbar的,我們可以使用一層LinearLayout包裹,並把這個屬性設置給LinearLayout,這樣就可以避免Toolbar的內容下沉了。如:
上述方法可以解決普通頁面的透明式狀態欄需求,如有復雜需求可以參考下面這些:
Android 系統狀態欄沉浸式/透明化完整解決方案
Android 沉浸式狀態欄的實現
Android沉浸式狀態欄(透明狀態欄)最佳實現
還有開源庫推薦: ImmersionBar
⑼ 如何實現Android透明導航欄
1、androidkitkat 有一個新的特性可以設置手機狀態欄的背景,讓手機整個界面的風格保持一致,看起來非常清爽。
2、android4.4提供了一套能透明的系統ui樣式給狀態欄和導航欄,這樣的話就不用向以前那樣每天面對著黑乎乎的上下兩條黑欄了,還可以調成跟activity 一樣的樣式,形成一個完整的主題。
3、首先要打開activity的透明主題功能,可以把activity的主題設置繼承*.TranslucentDecor 主題,然後設置android:windowTranslucentNavigation或者android:windowTranslucentStatus的主題屬性為true,又或者在activity的代碼裡面開啟FLAG_TRANSLUCENT_NAVIGATION或是FLAG_TRANSLUCENT_STATUS的window窗口標識。由於透明主題不能在4.4以前的版本裡面使用,所以系統樣式跟以前沒有區別,也就是看不到任何變化,這是一個兼容模式,這個模式可以兼容到api 10。