Android從4.4(KitKat) 開(kāi)始進(jìn)行了一些視覺(jué)上的改善和提升,其中包括讓狀態(tài)欄(Status Bar)和下方導(dǎo)航欄(Navigation Bar)進(jìn)行半透明處理,可以使APP內(nèi)容向上下延伸,使整個(gè)畫(huà)面的利用度大幅度提升,本篇就來(lái)說(shuō)說(shuō)這個(gè)“半透明狀態(tài)欄”(Translucent Bars)。
簡(jiǎn)單做了個(gè)Demo效果如下圖

*這里解釋個(gè)誤區(qū),國(guó)內(nèi)開(kāi)發(fā)者和設(shè)計(jì)師經(jīng)常把這種半透明效果稱(chēng)為沉浸式狀態(tài)欄這是不對(duì)的, 沉浸式Immersive mode,官方解釋為hiding all system UI根本不是這種半透明的效果。
下面說(shuō)說(shuō)如何使用這種效果:
1、在onCreate里面代碼設(shè)置半透明的屬性,由于只有Android 4.4以上才支持這種效果,所以代碼需要判斷下
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { //透明狀態(tài)欄 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //透明底部導(dǎo)航欄 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); }2、在這個(gè)界面上我去掉了Actionbar,實(shí)現(xiàn)方式有很多,這里我使用的是在Style里去掉。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> </style>
3、這個(gè)部分需要留意一下,如果希望APP的顯示內(nèi)容正常和滾動(dòng)透明化需要加上android:fitsSystemWindows=”true”和android:clipToPadding=”false”的屬性,建議你把這兩個(gè)屬性好好試試加上與否的區(qū)別。
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:clipToPadding="false" android:background="#795548" tools:context=".DefaultActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:textColor="#ffffff" android:text="@string/str" /></ScrollView>
這樣一個(gè)簡(jiǎn)單的半透明化效果就實(shí)現(xiàn)了
詳細(xì)源碼:
Layout
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:clipToPadding="false" android:background="#795548" tools:context=".DefaultActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:textColor="#ffffff" android:text="@string/str" /></ScrollView>
Style
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> </style></resources>
MainActivity
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { //透明狀態(tài)欄 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //透明導(dǎo)航欄 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } setContentView(R.layout.activity_main); }以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注