一、 设置透明主题
<style name="ActivityTransparent" parent="@style/Theme.AppCompat.Light.NoActionBar"><item name="android:windowBackground">@color/color_00000000</item> <!-- 背景色透明度 --><item name="windowNoTitle">true</item><!-- 无标题 --><item name="android:windowActionBar">false</item><item name="android:windowFrame">@null</item><item name="android:windowContentOverlay">@null</item><item name="android:windowIsTranslucent">true</item><!-- 半透明,设置为false无透明效果 --><item name="android:backgroundDimEnabled">true</item><!-- 模糊 --></style>
需要注意的 因为我们的activity 都是继承自AppCompatActivity 所以我们的theme 也一定是AppCompat 样式的 ,我所使用的是Theme.AppCompat.Light.NoActionBar
二、manifest里activity 引用主题
<activityandroid:name=".AudioRecordActivity"android:screenOrientation="portrait"android:theme="@style/ActivityTransparent" />``
三、设置activity 的状态栏全透明,适配部分机型半透明失效问题
// 设置全透明状态栏setStatusBarFullTransparent()setContentView(R.layout.activity_chnc_audio_record)overridePendingTransition(R.anim.activity_translate_in, mon_none)// 部分手机设置透明主题 无效问题theme.applyStyle(R.style.ActivityTransparent,true)
设置状态栏全透明
/*** 全透状态栏*/private fun setStatusBarFullTransparent() {if (Build.VERSION.SDK_INT >= 21) { //21表示5.0window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREENor View.SYSTEM_UI_FLAG_LAYOUT_STABLE)window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)window.statusBarColor = Color.TRANSPARENT} else if (Build.VERSION.SDK_INT >= 19) { //19表示4.4window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)//虚拟键盘也透明//getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);}}