溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android 實(shí)現(xiàn)背景圖和狀態(tài)欄融合方法

發(fā)布時(shí)間:2020-08-19 19:14:40 來源:腳本之家 閱讀:190 作者:童童童童思宇 欄目:移動開發(fā)

我們先看一下代碼:

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)版本號的判斷,只有當(dāng)版本號大于或等于21的時(shí)候,也就是5.0及以上系統(tǒng)時(shí)才會執(zhí)行后面的代碼。

接著我們調(diào)用了getWindow().getDecorView()方法拿到當(dāng)前活動的DecorView,再調(diào)用它的setSystemUiVisibility()方法來改變系統(tǒng)UI的顯示,這里傳入View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和View.SYSTEM_UI_FLAG_LAYOUT_STABLE就表示活動的布局會顯示在狀態(tài)欄上面,最后調(diào)用一下setStatusBarColor()方法將狀態(tài)欄設(shè)置成透明色。

僅僅這些代碼就可以實(shí)現(xiàn)讓背景圖和狀態(tài)欄融合到一起的效果了。

不過,如果運(yùn)行一下程序,你會發(fā)現(xiàn)還是有些問題,界面的頭布局幾乎和系統(tǒng)狀態(tài)欄緊貼到一起了,這是由于系統(tǒng)狀態(tài)欄已經(jīng)成為我們布局的一部分,因此沒有單獨(dú)為它留空間。當(dāng)然,這個(gè)問題也是非常好解決的,借助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)欄融合方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI