8

我有几个自定义首选项——一个显示当前选定颜色的样本,另一个显示缩略图。

我有一个非常匹配的自定义布局,并且发现我可以通过使用 android:textAppearance="?android:attr/textAppearanceLarge" 作为 TextView 的 xml 的一部分来使文本外观匹配。问题是,虽然这些通常看起来不错,但它们一定不是“官方”偏好使用的外观,因为在某些设备上颜色最终会出错。特别是我将我的应用程序移植到 Nook Color,它在首选项屏幕上使用浅灰色背景和黑色文本颜色,而不是黑色背景/浅灰色文本。在这种情况下我的文本颜色保持不变,但我的布局的其余部分是适当的主题。

我真的不确定我应该在这里做什么才能使我的文字与“官方”主题相匹配。我应该使用obtainStyledAttributes 并通过我的布局运行来设置东西吗?到目前为止,我所看到的关于使用它的教程确实令人困惑,而且似乎我必须在 XML 中设置一个 textAppearance 或样式来解决这个问题。

4

1 回答 1

0

您必须定义自己的应用程序主题,该主题继承自您想要的官方主题。实际上,您可以定义一个MyTheme扩展Theme.Light例如的主题。

像这样创建一个res/values/styles.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyTheme" parent="@android:style/Theme.Light">
    </style>
</resources>

然后,您只需要使用您的实体的android:theme属性来应用您的主题:applicationAndroidManifest.xml

<application android:theme="@style/MyTheme">
    [...]
</application>
于 2012-01-24T11:13:29.777 回答