1

我正在尝试做一些我觉得概念上非常简单的事情。我希望我的应用程序一直支持 API 10(姜饼)。为了使它看起来不错,我需要在设备运行 API 10 时对按钮上的文本颜色进行轻微更改。因此,我想创建两种样式:其中一种将在设备使用时使用API 10(在这种情况下,我希望按钮的文本颜色为黑色),另一个当设备使用 API 11 或更高版本时(在这种情况下,文本颜色将是默认的 ICS 灰色)。为此,我使用了 values 和 values-v11 文件夹。在 values 文件夹中是一个 theme.xml 文件,其中包含以下代码:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="buttonColorStyle">
        <item name="android:textAppearanceButton">@style/buttonTextColor</item>
    </style>

    <style name="buttonTextColor">
       <item name="android:textColor">#FFFFFF</item>
    </style>
</resources> 

但是,当我在目标 SDK 设置为 10 的情况下加载我的应用程序时,按钮的文本颜色从默认的灰色不变。另外,这是我的一个按钮的代码,它应该使用这种样式:

<Button
        style="@style/buttonColorStyle"
        android:id="@+id/thirdSectionButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:onClick="sectionButtonClicked"
        android:text="Section 3"
        android:textSize="11.5sp" />

有人有想法么?

4

2 回答 2

1

你必须做这样的事情:

 <style name="MyStlye">
        <item name="android:textAppearanceButton">@style/BtnText</item>
 </style>

 <style name="BtnText" parent="android:TextAppearance.Small.Inverse">
        <item name="android:textColor">@android:color/black</item> // or whatever color
 </style>
于 2013-01-05T00:21:31.013 回答
0

为什么不为所有版本设置相同的漂亮样式?

你可以使用这个库(这里的 android 开发者博客也建议)让所有设备都使用 holo 主题。

或者,直接离开当前的风格,这样用户对他当前的操作系统风格会更有“家”的感觉(因为它可以在公司之间改变)。

于 2013-01-05T18:44:21.903 回答