天天看點

Android 開啟一個透明的Activity

一丶首先擷取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">
           

繼續閱讀