一丶首先擷取Activity的Window對象,将Activity所屬的Window設定為一個像素大小
// 設定透明沉浸狀态欄
if (Build.VERSION.SDK_INT>=21)
{
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LAYOUT_STABLE); //使背景圖與狀态欄融合到一起,這裡需要在setcontentview前執行
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
setContentView(R.layout.activity_main);
//設定1像素
Window window = getWindow();
window.setGravity(Gravity.LEFT | Gravity.TOP);
WindowManager.LayoutParams params = window.getAttributes();
params.x = 0;
params.y = 0;
params.height = 1;
params.width = 1;
window.setAttributes(params);
二丶然後建立一個透明主題
<style name="TranslucentActivity" parent="Theme.AppCompat.Light.NoActionBar">//無标題
<item name="android:windowIsTranslucent">true</item>//透明
</style>
最後在AndroidMainfest中給這個Activity設定這個主題就可以了。
android:theme="@style/TranslucentActivity">