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中將狀態列設定...