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

Android 設定背景顏色為何顯示黑屏?正確用法詳解

     編輯:程式設計綜合問答

問題現象

在 onCreate 中直接 new View(this) 並呼叫 setBackgroundColor(23423425),結果畫面全黑,顏色完全不如預期。

根本原因

View.setBackgroundColor(int color) 參數需為 ARGB 32 位整數,最高 8 位為 Alpha(透明度)。直接傳入 23423425(十進位)會被解析為 0x0166 0x66 0x69,Alpha 為 0x01(幾乎全透明),故呈現黑屏。

正確寫法

1. 使用 Color 類別常數

view.setBackgroundColor(Color.BLACK);        // 0xFF000000
view.setBackgroundColor(Color.RED);          // 0xFFFF0000
view.setBackgroundColor(Color.argb(255, 36, 120, 200)); // 自訂 ARGB

2. 十六進位字面常數(含 Alpha)

view.setBackgroundColor(0xFF2478C8); // 不透明藍色

3. 從資源檔讀取

view.setBackgroundColor(ContextCompat.getColor(this, R.color.my_bg));

Color 類常用內建常數

常數ARGB 值顏色
BLACK0xFF000000黑
DKGRAY0xFF444444深灰
GRAY0xFF888888灰
LTGRAY0xFFCCCCCC淺灰
WHITE0xFFFFFFFF白
RED0xFFFF0000紅

最佳實務建議

  • 優先使用 Color.argb() 或資源檔,避免手寫十六進位出錯。
  • 若需漸層、圖片背景,改用 setBackgroundResource() 或 setBackgroundDrawable()。
  • 別忘了在佈局 XML 中直接寫 android:background="@color/xxx",更簡潔。

記住:顏色整數必須包含 Alpha 通道(0xFFxxxxxx 才不透明),黑屏問題即刻解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved