安卓activity 设置Activity背景色为透明
通过Theme.Translucent
有三种样式:
@android:style/Theme.Translucent@android:style/Theme.Translucent.NoTitleBar@android:style/Theme.Translucent.NoTitleBar.Fullscreen
在清单文件中设置在需要透明的activity上即可 如:

注意:如果直接使用了,你的程序也许会直接崩溃!原因可能是你的Activity继承的是V7包的AppCompatActivity,这时你所使用的主题要与Theme.AppCompat兼容,否则程序就会崩溃了。
解决方案:
使你的Activity继承android.app包的Activity。
第二种: 代码方式
private void translucentActivity(Activity activity) {try {activity.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));activity.getWindow().getDecorView().setBackground(null);Method activityOptions = Activity.class.getDeclaredMethod("getActivityOptions");activityOptions.setAccessible(true);Object options = activityOptions.invoke(activity);Class>[] classes = Activity.class.getDeclaredClasses();Class> aClass = null;for (Class clazz : classes) {if (clazz.getSimpleName().contains("TranslucentConversionListener")) {aClass = clazz;}}Method method = Activity.class.getDeclaredMethod("convertToTranslucent",aClass, ActivityOptions.class);method.setAccessible(true);method.invoke(activity, null, options);} catch (Throwable t) {t.printStackTrace();}
}
第三种:

super.setTheme(android.R.style.Theme_Translucent_NoTitleBar);
写一个style 样式 让清单文件的所要透明的activity应用(这种方式可以防止闪白屏)

清单文件:

注意,以上设置都需要activity继承activity
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
