2015-03-02 319 views
1

我一直在想這個問題。在Android佈局繪圖中更高效的是什麼? android:textColor =「#FFFFFF」或android:textColor =「@ android:color/white」?

在構建XML Android佈局時,我們可以使用RGB十六進制代碼或color.xml文件中的顏色值定義TextView文本顏色。

android:textColor="#FFFFFF" 

android:textColor="@android:color/white" 

這只是一個可讀性問題,並沒有任何效果都沒有繪製佈局或這有性能差異是什麼時候?

+0

您必須使用#fffff或製作一個顏色xml並從那裏獲取顏色。 – 2015-03-02 17:48:36

+1

兩者之間沒有區別。這是爲了可讀性,並且對於每個常量,如果你代替*魔法值*,則在應用程序範圍內進行更改需要少量更改常量的值,即在每個地方使用*魔法值* – Blackbelt 2015-03-02 17:50:35

回答

5

它們是相同的。 @android:color/white只是在Color類中定義的一個常量,您可以參考,而不必調用特定的十六進制顏色。唯一可見的好處是它使你的代碼更具可讀性。

+0

你知道嗎關於任何可以證明這一點的文檔? – joao2fast4u 2015-03-02 18:23:46

+0

默認系統顏色在'R.color'中定義:http://developer.android.com/reference/android/R.color.html。正如@Dev所提到的,我非常懷疑你會注意到兩者之間的性能差異。 – 2015-03-02 18:45:23

+2

Android框架工程師在這裏。解決資源的性能差異可以忽略不計。爲了便於閱讀,您應該更喜歡@color。 – alanv 2015-03-02 21:29:29

1

硬編碼字符串性能良好。

android:textColor="#FFFFFF" 

從某個類的引用是位時間,然後硬編碼。

android:textColor="@android:color/white" 
+0

那麼,它只會影響構建時間?不是運行時? – joao2fast4u 2015-03-02 18:06:02

+1

我非常懷疑有一個明顯的差異。你可以自己嘗試。創建一個項目添加數百個參考,嘗試,衡量,然後改變它並比較結果。 – 2015-03-02 18:19:47

相關問題