2013-08-03 335 views
21

如何設置我的android應用程序的背景顏色。當我嘗試:設置背景顏色:Android

LinearLayout li=(LinearLayout)findViewById(R.id.myLayout); 
li.setBackgroundColor(Color.parseColor("#rrggbb")); 

我的應用程序總是崩潰。有人能幫助我嗎?由於

+0

爲什麼它崩潰? logcat說什麼?我相信這是由於其他原因,比如,您是否使用'setContentView'方法爲您的Activity設置了佈局? –

+1

你真的使用Color.parseColor(「#rrggbb」)嗎?您應該使用十六進制 –

回答

38
Color.parseColor("#rrggbb") 

代替#rrggbb你應該用十六進制值0到F爲RR,GG和BB:

例如Color.parseColor("#000000")Color.parseColor("#FFFFFF")

Source

從技術文檔:

公共靜態INT parseColor(字符串colorString):

解析顏色字符串,並返回相應的顏色-INT。如果 字符串不能被解析,則拋出IllegalArgumentException異常。 支持的格式爲:#RRGGBB #AARRGGBB'紅','藍','綠', '黑','白','灰','青','品紅','黃','淺灰色', 'darkgray','gray','lightgrey','darkgrey','aqua','fuschia', 'lime','maroon','navy','olive','purple','silver', '水鴨'

所以我相信,如果你正在使用#rrggbb你在你的logcat得到拋出:IllegalArgumentException

Source

備選:

Color mColor = new Color(); 
mColor.red(redvalue); 
mColor.green(greenvalue); 
mColor.blue(bluevalue); 
li.setBackgroundColor(mColor); 

Source

6

試試這個:

li.setBackgroundColor(android.R.color.red); //or which ever color do you want 

編輯:發佈logcat的文件也會有所幫助。

+0

mainLayout.setBackgroundColor(getResources()。getColor(android.R.color.black)); – fullMoon

13

這個問題是一個老的,但它可以幫助別人了。

試試這個:

li.setBackgroundColor(getResources().getColor(R.color.blue)); 

    or 

    li.setBackgroundColor(getResources().getColor(android.R.color.red)); 

    or 

    li.setBackgroundColor(Color.rgb(226, 11, 11)); 


    or 
    li.setBackgroundColor(Color.RED) 
0

順便說一句,一個很好的提示對AS的新版本快速選擇顏色簡單地鍵入#FFF,然後使用該代碼的到一邊拾色器選擇你想要的。比記住所有顏色的十六進制更快,更容易。例如:

android:background="#fff"