2010-11-16 82 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設計方式的一個缺陷,它會導致我們很多人的悲痛。我希望我對你有一個更好的答案,但我認爲這是我們得到的最好的答案。