Android 實(shí)現(xiàn)背景圖和狀態(tài)欄融合方法
我們先看一下代碼:
public class MainActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= 21){
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
setContentView(R.layout.activity_main);
...
}
由于這個(gè)功能是Android5.0及以上的系統(tǒng)才支持的,因此我們先在代碼中做一個(gè)系統(tǒng)版本號(hào)的判斷,只有當(dāng)版本號(hào)大于或等于21的時(shí)候,也就是5.0及以上系統(tǒng)時(shí)才會(huì)執(zhí)行后面的代碼。
接著我們調(diào)用了getWindow().getDecorView()方法拿到當(dāng)前活動(dòng)的DecorView,再調(diào)用它的setSystemUiVisibility()方法來(lái)改變系統(tǒng)UI的顯示,這里傳入View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和View.SYSTEM_UI_FLAG_LAYOUT_STABLE就表示活動(dòng)的布局會(huì)顯示在狀態(tài)欄上面,最后調(diào)用一下setStatusBarColor()方法將狀態(tài)欄設(shè)置成透明色。
僅僅這些代碼就可以實(shí)現(xiàn)讓背景圖和狀態(tài)欄融合到一起的效果了。
不過(guò),如果運(yùn)行一下程序,你會(huì)發(fā)現(xiàn)還是有些問(wèn)題,界面的頭布局幾乎和系統(tǒng)狀態(tài)欄緊貼到一起了,這是由于系統(tǒng)狀態(tài)欄已經(jīng)成為我們布局的一部分,因此沒(méi)有單獨(dú)為它留空間。當(dāng)然,這個(gè)問(wèn)題也是非常好解決的,借助android:fitsSystemWindows屬性就可以了。
見代碼:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:fitsSystemWindows="true">
</LinearLayout>
</FrameLayout>
這樣就可以了。
以上這篇Android 實(shí)現(xiàn)背景圖和狀態(tài)欄融合方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android使用SharedPreferences存儲(chǔ)數(shù)據(jù)的實(shí)現(xiàn)方法
這篇文章主要介紹了Android使用SharedPreferences存儲(chǔ)數(shù)據(jù)的實(shí)現(xiàn)方法,可實(shí)現(xiàn)針對(duì)短信的臨時(shí)保存功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2016-06-06
android通過(guò)代碼的形式來(lái)實(shí)現(xiàn)應(yīng)用程序的方法
因?yàn)閼?yīng)用程序的安裝與卸載模塊在android系統(tǒng)中已經(jīng)寫好了,所以我們只需要激活就行了2013-10-10
Android動(dòng)態(tài)顯示具體到秒的相聚時(shí)間
這篇文章主要為大家詳細(xì)介紹了Android動(dòng)態(tài)顯示具體到秒的相聚時(shí)間,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
Android刮刮樂(lè)效果-proterDuffXfermode的示例代碼
這篇文章主要介紹了Android刮刮樂(lè)效果-proterDuffXfermode,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Android開發(fā)之DialogFragment用法實(shí)例總結(jié)
這篇文章主要介紹了Android開發(fā)之DialogFragment用法,結(jié)合實(shí)例形式總結(jié)分析了Android使用DialogFragment代替Dialog功能的相關(guān)使用技巧與注意事項(xiàng),需要的朋友可以參考下2017-11-11

