12

我已经看到有关如何设置系统颜色的参考资料,但我需要了解您如何获取它们 - 您如何找出它们是什么?

例如,在三星 Galaxy S 上,选项卡视图、选择项目时突出显示的 ListView 以及首选项屏幕上的摘要文本行都是蓝色的。

有很多模仿这种风格的应用程序,我也想做同样的事情。显然我不能硬编码并将颜色设置为蓝色,因为其他手机使用不同的颜色。

问题是,有没有办法以编程方式找出 Preference Screen Summary Line、Tabs 或 ListView 选择的颜色,以便您可以在应用程序的其他地方针对 TextView 进行设置?

我如何获得android系统颜色?

4

2 回答 2

5

这个问题有一个答案,但它可能不是你想听到的。没有办法可靠地做到这一点。“选择颜色”实际上是九个补丁图像的一部分,它是在特定于平台的基础上提供的。有些使用标准的橙色,有些(Sense)使用绿色,还有一些使用红色。有了这些详尽的列表,您也许可以创建从硬件到颜色的映射,但这不是很有效,因为新硬件一直出现,并且其中一些手机允许卸载感觉。

您唯一能做的就是使您的按钮在应用程序本身中保持一致,这本身就是一项艰巨的任务。如果你真的需要一个带有选择颜色的自定义项(这很常见),那么我的建议是从你选择的平台复制按钮资源(我自己喜欢默认的 sdk 资源),然后手动设置它们在整个应用程序中。这样,无论您在哪个平台上,它们看起来总是一样的,因此将始终与您的自定义视图相匹配。请注意,这将需要您做的不仅仅是按钮。对话框和菜单也需要修改,这是可能的,但很难。

这确实是 Android 设计方式的一个缺陷,它让我们很多人感到悲痛。我希望我有一个更好的答案给你,但我认为这是我们所拥有的最好的。

于 2011-02-08T20:41:11.423 回答
0

您可以使用@android:color系统变量为 XML 布局中的元素指定颜色:

<TextView android:background="@android:color/white" android:textColor="@android:color/black" />
于 2010-11-16T11:50:19.663 回答