修改现有主题



我想知道是否可以(以及如何)自定义现有主题。

我想知道的是,当Activity启动并在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>

在这种情况下,除了此处指定的item之外,CodeFont样式将与TextAppearance.Medium样式相同。你可以对任何主题做同样的事情,包括默认的Holo或Dark主题等等。

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

相关内容

  • 没有找到相关文章

最新更新