【发布时间】:2013-01-05 00:12:52
【问题描述】:
我正在尝试做一些我觉得概念上非常简单的事情。我希望我的应用程序一直支持 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" />
有人有什么想法吗?
【问题讨论】:
-
为什么要更改 targetSdk 值?将 minimumSdk 设置为 10,将 targetSdk 设置为最高(当前为 17)。只需将您的模拟器作为 API-10 设备运行,或使用运行 Gingerbread 的实际设备。
-
同意 - 我这样做只是为了方便。但是,这会对结果产生影响吗?
-
是的,改变了它编译的 android 版本。如果它引用的主题在这些版本之间发生了变化,那么当你运行它时就会显示出来。
-
这与将我的目标 SDK 设置为 10 有何不同?
-
致被否决的人:愿意表达你对这个问题的问题,以便我可以改进它?
标签: java android xml android-theme