首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android TextView 設置文字顏色完整指南:Color 類、RGB、十六進制、資源引用

     編輯:程式設計綜合問答

方法一:Color 類預定義常量

textView.setTextColor(Color.RED);
textView.setTextColor(Color.BLUE);
textView.setTextColor(Color.GREEN);
textView.setTextColor(Color.BLACK);
textView.setTextColor(Color.WHITE);
textView.setTextColor(Color.TRANSPARENT);
textView.setTextColor(Color.parseColor("#FF0000")); // 解析十六進制字串

方法二:RGB / ARGB 組合

// RGB (0-255)
textView.setTextColor(Color.rgb(255, 0, 0));       // 紅
textView.setTextColor(Color.rgb(0, 128, 255));     // 藍

// ARGB (含透明度 0-255)
textView.setTextColor(Color.argb(128, 255, 0, 0)); // 半透明紅

方法三:資源引用 (推薦,支援主題/夜間模式)

// colors.xml
<color name="primary_text">#212121</color>
<color name="accent_color">#FF5722</color>

// 代碼 (需 Context)
textView.setTextColor(ContextCompat.getColor(context, R.color.primary_text));
// 或 API 23+
textView.setTextColor(getColor(R.color.primary_text));

方法四:XML 布局中靜態設置

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello"
    android:textColor="@color/primary_text" />

<!-- 或直接十六進制 -->
<TextView
    android:textColor="#FF5722" />

方法五:狀態列表顏色 (Selector) - 按狀態變色

<!-- res/color/text_selector.xml -->
<selector xmlns:android="https://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="@color/colorPressed" />
    <item android:state_focused="true" android:color="@color/colorFocused" />
    <item android:state_selected="true" android:color="@color/colorSelected" />
    <item android:color="@color/colorDefault" /> <!-- 默認 -->
</selector>

<TextView
    android:textColor="@color/text_selector" />

常見錯誤與避坑

錯誤代碼問題修正
textView.setTextColor(#FF0000)語法錯誤:# 開頭被當作註釋/運算符Color.parseColor("#FF0000") 或 0xFFFF0000
textView.setTextColor(R.color.red)傳入資源 ID (int) 而非顏色值ContextCompat.getColor(ctx, R.color.red)
直接用 0xFF0000缺少 Alpha 通道,實際為透明藍0xFFFF0000 (ARGB: Alpha=FF)

最佳實踐總結

  1. 優先使用色彩資源:@color/xxx + ContextCompat.getColor(),支援主題切換、夜間模式
  2. 動態計算顏色:使用 Color.argb()、Color.rgb(),避免手拼十六進制
  3. 狀態相關顏色:使用 Color State List (res/color/xxx.xml)
  4. 避免硬編碼:所有顏色值集中管理於 colors.xml
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved