我正在开发一个库,在这个库中,我必须以编程方式设置窗口背景,并且不能使用自定义样式的XML。这个想法是,实现库的用户可以设置任何他想要的主题-我只需要使背景透明即可。因此,小部件的所有样式都将保持不变。
我尝试了一些窗口标志,如WindowManager.LayoutParams.FLAG_DIM_BEHIND
和WindowManager.LayoutParams.FLAG_BLUR_BEHIND
,但它们都不起作用。
我找到的每个解决方案都是基于样式xml文件的。
有没有办法直接从代码中设置windowIsTranslucent?
提前谢谢你,罗曼
发布于 2012-11-27 22:34:58
不,这不可能。
只能在你的主题中设置windowIsTranslucent
。
建议;创建自己的主题,其他人可以覆盖。
发布于 2016-10-10 09:18:59
在您的活动开始之前,android:windowIsTranslucent
、android:windowIsFloating
和android:windowNoDisplay
都只被读取一次。因此,当您运行自己的代码时,为时已晚。
http://osxr.org:8080/android/source/frameworks/base/services/java/com/android/server/am/ActivityRecord.java#0399
发布于 2018-07-19 10:31:55
我用了这个
@Override
protected void onCreate(Bundle savedInstanceState) {
processSetTheme(this);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getWindow().setBackgroundDrawableResource(R.color.realTranslucent);
if (Build.VERSION.SDK_INT>=19){
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
super.onCreate(savedInstanceState);
<color name="realTranslucent">#00000000</color>
https://stackoverflow.com/questions/13586284
复制相似问题