如何获得Android系统颜色

时间:2010-11-16 09:45:18

标签: android uicolor

我已经看过如何设置系统颜色的参考资料,但我需要了解你如何获取它们 - 你怎么知道它们是什么?

例如,在Samsung Galaxy S上,选项卡视图,ListView会在您选择项目时突出显示,而首选项屏幕上的摘要文本行都是蓝色。

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

问题是,有没有办法以编程方式找出首选项屏幕摘要行,选项卡或ListView选择的颜色,以便您可以针对应用程序中其他位置的TextView设置该颜色?

如何获得android系统颜色?

2 个答案:

答案 0 :(得分:5)

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

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

真的,这是Android设计方式的一个缺陷,它让我们很多人感到悲伤。我希望我有一个更好的答案,但我认为这是我们得到的最好的答案。

答案 1 :(得分:0)

您可以使用@android:color系统变量

为XML布局中的元素指定颜色
<TextView android:background="@android:color/white" android:textColor="@android:color/black" />