以编程方式设置android:windowIsTranslucent

以编程方式设置android:windowIsTranslucent,第1张

概述按照本教程 http://cases.azoft.com/android-tutorial-floating-activity/后,我能够创建一个浮动活动 但是,要这样做,我必须在styles.xml中添加这一行: <item name="android:windowIsTranslucent">true</item> 是否可以仅使用Android / Java代码获得相同的效果? (例如在Act 按照本教程 http://cases.azoft.com/android-tutorial-floating-activity/后,我能够创建一个浮动活动

但是,要这样做,我必须在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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1122259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存