安卓activity 设置Activity背景色为透明
16lz
2021-01-25
通过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
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- RadioButton样式自定义
- LeanCanary——消除Android中的内存泄露
- AlertDialog使用自定义的布局
- Ubuntu编译Android(安卓)KitKat 4.4出现Chromium gyp HashSet_jn
- Android(安卓)Gradle 插件(二)