但是,要这样做,我必须在styles.xml中添加这一行:
<item name="androID:windowIsTranslucent">true</item>
是否可以仅使用AndroID / Java代码获得相同的效果? (例如在Activity.onAttachedToWindow()中……)
在此先感谢您的帮助.
[编辑01] styles.xml不能改变(我不应该知道它里面有什么……).但出于测试目的,我使用的是默认值:
<resources> <style name="AppBasetheme" parent="theme.AppCompat.light"> </style> <style name="Apptheme" parent="AppBasetheme"> </style></resources>
[编辑02] Resources.Theme.applyStyle() 似乎做我想要的(根据API描述:“将新属性值放入主题”).
所以我创建了以下custom_style.xml:
<resources> <style name="MyCustomStyle" > <item name="androID:windowIsTranslucent">true</item> </style></resources>
然后,在onAttachedToWindow()中,我调用了:
gettheme().applyStyle(R.style.MyCustomStyle,true);
但它没有任何影响……
解决方法Is it possible to have the same effect using only AndroID/Java code ?
我很害怕,不.你只能在styles.xml中这样做. androID:windowIsTranslucent的AFAIK值无法以编程方式更改.
当我们调用super.onCreate(savedInstanceState)时; Activity类提供了我们设置内容IE.vIEws的空图形窗口.并且将一个主题应用于此窗口,然后在此视图上加载内容.
因此序列将是,
>调用super.onCreate()
>为活动设置主题.
>为该活动设置内容视图.
例如.
styles.xml
<style name="Apptheme" parent="AppBasetheme"><!-- All customizations that are NOT specific to a particular API-level can go here. --> <item name="androID:windowBackground">@drawable/background</item> <item name="androID:windowNoTitle">true</item></style><!-- Application theme.without Title bar --><style name="Apptheme.NoTitlebar" parent="AppBasetheme"><!-- All customizations that are NOT specific to a particular API-level can go here. --> <item name="androID:windowBackground">@drawable/background</item> <item name="androID:windowNoTitle">true</item></style><!--floating activity theme --><style name="theme_Translucent" parent="androID:style/theme.NoTitlebar.Fullscreen"> <item name="androID:windowBackground">@androID:color/transparent</item> <item name="androID:windowFrame">@null</item> <item name="androID:windowContentOverlay">@null</item> <item name="androID:windowIsfloating">true</item> <item name="androID:backgroundDimEnabled">true</item> <item name="androID:windowIsTranslucent">true</item> <item name="androID:windowNoTitle">true</item> <item name="androID:windowAnimationStyle">@androID:style/Animation.Dialog</item> <item name="androID:windowFullscreen">true</item></style>
然后为浮动活动设置主题,如下所示:
public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); settheme(R.style.theme_Translucent); // Set here setContentVIEw(...)}总结
以上是内存溢出为你收集整理的以编程方式设置android:windowIsTranslucent全部内容,希望文章能够帮你解决以编程方式设置android:windowIsTranslucent所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)