一疾棵、給View設(shè)置背景圖片:
(1)setBackground(Drawable background)
button.setBackground(getResources().getDrawable(R.drawable.ic_launcher));
(2)setBackgroundDrawable(Drawable background)
button.setBackgroundDrawable(getResources().getDrawable(R.drawable.ic_launcher));
(3)setBackgroundResource(int resid)
button.setBackgroundResource(R.drawable.ic_launcher);
需要注意的是:
- setBackground()和setBackgroundDrawable()的使用是一樣的找都,傳入的參數(shù)均為Drawable對象,需要使用getResources().getDrawable(int id)來從圖片的id獲得Drawable對象
- setBackgroundResource()傳入的參數(shù)正是圖片的id唐础,不需要轉(zhuǎn)換為Drawable對象,因此使用起來更簡單
- setBackgroundDrawable()已經(jīng)被棄用,我們可以使用另外兩種方法來替代茬贵。事實上郊霎,被棄用的原因只是因為命名的決策變化沼头,從setBackground()函數(shù)的源碼我們可以看出,只是簡單地調(diào)用了setBackgroundDrawable()函數(shù)书劝,所以二者并沒有實質(zhì)的區(qū)別进倍。
public void setBackground(Drawable background) {
//noinspection deprecation
setBackgroundDrawable(background);
}
二、給View設(shè)置背景顏色:
(1)setBackgroundColor(int color)
button1.setBackgroundColor(0xFFFF00FF);
或
button1.setBackgroundColor(Color.parseColor("#FFFCCC"));
該函數(shù)參數(shù)為int類型的顏色购对,我們可以直接傳入int類型的顏色猾昆,也可以將string類型的顏色字符串轉(zhuǎn)換為int類型,這需要用到Color.parseColor(String colorString)函數(shù)來解析顏色字符串骡苞,如果該顏色字符串的格式不不支持垂蜗,會拋出IllegalArgumentException異常楷扬。支持的顏色字符串格式有:
* #RRGGBB
* #AARRGGBB
* 'red', 'blue', 'green', 'black', 'white', 'gray', 'cyan', 'magenta',
* 'yellow', 'lightgray', 'darkgray', 'grey', 'lightgrey', 'darkgrey',
* 'aqua', 'fuschia', 'lime', 'maroon', 'navy', 'olive', 'purple',
* 'silver', 'teal'
Color.class中常見int型顏色:
public static final int BLACK = 0xFF000000; //黑色
public static final int DKGRAY = 0xFF444444; //暗灰
public static final int GRAY = 0xFF888888; //灰色
public static final int LTGRAY = 0xFFCCCCCC; //亮灰
public static final int WHITE = 0xFFFFFFFF; //白色
public static final int RED = 0xFFFF0000; //紅色
public static final int GREEN = 0xFF00FF00; //綠色
public static final int BLUE = 0xFF0000FF; //藍(lán)色
public static final int YELLOW = 0xFFFFFF00; //黃色
public static final int CYAN = 0xFF00FFFF; //青色
public static final int MAGENTA = 0xFFFF00FF; //品紅
public static final int TRANSPARENT = 0; //透明色