Android 修改现有主题

Android 修改现有主题,android,styles,themes,android-theme,Android,Styles,Themes,Android Theme,我想知道是否有可能(以及如何)定制现有的主题 我要寻找的是如何在活动启动时检索特定属性(即颜色)并更改它,然后在setContentView()之前重新应用修改过的主题 类似于setTheme(),但不要使用资源id,而是使用修改后的主题。为什么不创建自己的主题,将android:parent设置为要复制的主题,然后设置自己的属性?这一点可以在中得到证明,如下所示: <?xml version="1.0" encoding="utf-8"?> <resources>

我想知道是否有可能(以及如何)定制现有的主题

我要寻找的是如何在
活动启动时检索特定属性(即颜色)并更改它,然后在
setContentView()之前重新应用修改过的主题


类似于
setTheme()
,但不要使用资源id,而是使用修改后的主题。

为什么不创建自己的主题,将
android:parent
设置为要复制的主题,然后设置自己的属性?这一点可以在中得到证明,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CodeFont" parent="@android:style/TextAppearance.Medium">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#00FF00</item>
        <item name="android:typeface">monospace</item>
    </style>
</resources>

填补家长的空缺
包装内容
#00FF00
单空间

在这种情况下,
CodeFont
样式将与
TextAppearance.Medium
样式相同,但此处指定的
项除外。您可以对任何主题执行相同的操作,包括默认的全息或黑暗主题或诸如此类的操作。

为什么不创建自己的主题,将
android:parent
设置为要复制的主题,然后设置自己的属性?这一点可以在中得到证明,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CodeFont" parent="@android:style/TextAppearance.Medium">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#00FF00</item>
        <item name="android:typeface">monospace</item>
    </style>
</resources>

填补家长的空缺
包装内容
#00FF00
单空间

在这种情况下,
CodeFont
样式将与
TextAppearance.Medium
样式相同,但此处指定的
项除外。您可以对任何主题执行相同的操作,包括默认的全息或黑暗主题或诸如此类。

根据进一步的研究和Eric的评论,目前还没有一种可能的方式以编程方式修改主题。可以通过编程方式应用不同的主题,但不能修改。一旦在XML中设置了样式,就无法对其进行修改。

根据进一步的研究和Eric的评论,目前还没有一种可以通过编程方式修改主题的方法。可以通过编程方式应用不同的主题,但不能修改。一旦在XML中设置了样式,就无法对其进行修改。

因为我希望能够在每次
活动开始时使用不同的输入值对其进行更改。这样它是静态的。我已经研究并尝试过了,但这不是我想要的。对不起,您不能通过编程方式更改样式。但是,一旦在XML中设置了样式,就不能修改它。这也处理了预加载的样式。我希望在运行时对其进行更改。好吧,我已经给了您一个简单的答案——您不能通过编程更改样式或编辑样式——答案就到此为止了。祝你好运,我想。因为我希望每次
活动开始使用不同的输入值时都能更改它。这样它是静态的。我已经研究并尝试过了,但这不是我想要的。对不起,您不能通过编程方式更改样式。但是,一旦在XML中设置了样式,就不能修改它。这也处理了预加载的样式。我希望在运行时对其进行更改。好吧,我已经给了您一个简单的答案——您不能通过编程更改样式或编辑样式——答案就到此为止了。祝你好运,我想。