2010-11-16 84 views
12

我已经见过有关如何设置系统颜色的参考,但我需要了解如何获取它们 - 您如何知道它们是什么?如何获取Android系统颜色

例如,在三星Galaxy S上,选项卡视图,ListView在选择项目时高亮显示,而首选项屏幕上的摘要文本行全部为蓝色。

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

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

如何获取android系统颜色?

+0

它实际上可以完成,虽然它有点棘手。看到我的回应在这个线程:http://stackoverflow.com/questions/4081946/android-preferences-summary-default-color – Carlos 2012-01-02 21:50:09

回答

0

您可以在XML布局使用​​系统变量指定的颜色元素:

<TextView android:background="@android:color/white" android:textColor="@android:color/black" /> 
+0

谢谢你的回复。这就是你如何设置颜色(提供你知道它是什么)。我需要先找出Android系统颜色 - 我该怎么做? – Simon 2010-11-16 12:14:16

+0

@Simon:我误解了你的问题。我无法帮你解答这个问题。如果我是你,我可能也会试着澄清这个问题,因为这并不明显。 – Nailuj 2010-11-16 12:27:09

+0

我会编辑我的问题以澄清 - 但正如所讨论的,我不想设置颜色,而是获取颜色,主题和样式,以便我可以使我的应用程序和文字看起来“标准”。我在考虑有“摘要”的“首选项”屏幕。我手机上有很多应用程序似乎都使用这种颜色,但是如何以编程方式查明该颜色是什么? – Simon 2010-11-16 12:34:24

5

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

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

真的这是Android设计方式的一个缺陷,它会导致我们很多人的悲痛。我希望我对你有一个更好的答案,但我认为这是我们得到的最好的答案。