Android 中的沉浸式

2021-08-22 04:48:39 字數 3254 閱讀 2527

1.在kotlin語言使用

statusbarutil.companion.immersive(this);

statusbarutil.companion.setpaddingsmart(this,viewbyid);

//kotlin語言下程式設計

class statuscommbarutil catch (e: exception)

}@jvmoverloads

fun immersive(activity: activity, color: int = default_color, @floatrange(from = 0.0, to = 1.0) alpha: float = default_alpha)

fun immersive(window: window)

@jvmoverloads

fun immersive(window: window, color: int, @floatrange(from = 0.0, to = 1.0) alpha: float = 1f) else if (build.version.sdk_int >= 19) else if (build.version.sdk_int >= min_api && build.version.sdk_int > 19) }//

@targetapi(build.version_codes.m)

//fun darkmode(activity: activity, dark: boolean)

}/** 設定狀態列darkmode,字型顏色及icon變黑(目前支援miui6以上,flyme4以上,android m以上) */

fun darkmode(activity: activity)

fun darkmode(activity: activity, color: int, @floatrange(from = 0.0, to = 1.0) alpha: float)

/** 設定狀態列darkmode,字型顏色及icon變黑(目前支援miui6以上,flyme4以上,android m以上) */

@targetapi(build.version_codes.m)

fun darkmode(window: window, color: int, @floatrange(from = 0.0, to = 1.0) alpha: float)

ismiui6later ->

build.version.sdk_int >= build.version_codes.m ->

build.version.sdk_int >= 19 ->

else -> immersive(window, color, alpha)

}// if (build.version.sdk_int >= 21) else if (build.version.sdk_int >= 19)

// settranslucentview((viewgroup) window.getdecorview(), color, alpha);

}//------------------------->

/** android 6.0設定字型顏色 */

@requiresapi(build.version_codes.m)

fun darkmodeform(window: window, dark: boolean) else

window.decorview.systemuivisibility = systemuivisibility

}/**

* 設定flyme4+的darkmode,darkmode時候字型顏色及icon變黑

* */

fun darkmodeforflyme4(window: window?, dark: boolean): boolean else

meizuflags.setint(e, value)

window.attributes = e

result = true

} catch (var8: exception)

}return result

}/**

* 設定miui6+的狀態列是否為darkmode,darkmode時候字型顏色及icon變黑

* */

fun darkmodeformiui6(window: window, darkmode: boolean): boolean catch (e: exception) }//

/** 增加view的paddingtop,增加的值為狀態列高度 */

fun setpadding(context: context, view: view)

}/** 增加view的paddingtop,增加的值為狀態列高度 (智慧型判斷,並設定高度) */

fun setpaddingsmart(context: context, view: view)

view.setpadding(view.paddingleft, view.paddingtop + getstatusbarheight(context),

view.paddingright, view.paddingbottom)}}

/** 增加view的高度以及paddingtop,增加的值為狀態列高度.一般是在沉浸式全屏給*******用的 */

fun setheightandpadding(context: context, view: view)

}/** 增加view上邊距(margintop)一般是給高度為 warp_content 的小控制項用的 */

fun setmargin(context: context, view: view)

view.layoutparams = lp}}

/*** 建立假的透明欄

*/fun settranslucentview(container: viewgroup, color: int, @floatrange(from = 0.0, to = 1.0) alpha: float)

if (translucentview != null) }}

fun mixturecolor(color: int, @floatrange(from = 0.0, to = 1.0) alpha: float): int

/** 獲取狀態列高度 */

fun getstatusbarheight(context: context): int else

return result}}

}

Android 沉浸式 體驗

首先宣告一下這個叫法應該是不對的,translucent翻譯過來的是半透明效果,不是ios的那種什麼沉浸式 首先要明確1個概念,在android上,沉浸式 叫沉浸式全屏模式以及透明化系統狀態列其實這個也沒啥好說的,不管你是android粉還是ios粉,在日常玩機的過程中,都見過這種介面效果 強調一下...

Android 沉浸式模式

注意.沉浸式模式是android4.0後出現的,所以在使用的時候注意這一點。1.為保障每個頁面都使用的是沉浸式狀態列,統一風格,所以我們需要建立theme 2.在res目錄下建立values v19 style.xml 3.新增如下屬性 windownotitle 代表沒有標題欄windowistr...

Android 沉浸式體驗

1 平時我們寫 的習慣都會在專案中設定乙個baseactivity,用來實現一些activity的共有操作,此時正好用到 再baseactivity中的布局中新增乙個20dp的view 狀態列的高度一般就是20dp view的背景色就設定為你的標題欄顏色 2 在baseactivity中將狀態列設定...