一、给View设置背景图片:
(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()的使用是一样的,传入的参数均为Drawable对象,需要使用getResources().getDrawable(int id)来从图片的id获得Drawable对象
- setBackgroundResource()传入的参数正是图片的id,不需要转换为Drawable对象,因此使用起来更简单
- setBackgroundDrawable()已经被弃用,我们可以使用另外两种方法来替代。事实上,被弃用的原因只是因为命名的决策变化,从setBackground()函数的源码我们可以看出,只是简单地调用了setBackgroundDrawable()函数,所以二者并没有实质的区别。
public void setBackground(Drawable background) {
//noinspection deprecation
setBackgroundDrawable(background);
}
二、给View设置背景颜色:
(1)setBackgroundColor(int color)
button1.setBackgroundColor(0xFFFF00FF);
或
button1.setBackgroundColor(Color.parseColor("#FFFCCC"));
该函数参数为int类型的颜色,我们可以直接传入int类型的颜色,也可以将string类型的颜色字符串转换为int类型,这需要用到Color.parseColor(String colorString)函数来解析颜色字符串,如果该颜色字符串的格式不不支持,会抛出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; //蓝色
public static final int YELLOW = 0xFFFFFF00; //黄色
public static final int CYAN = 0xFF00FFFF; //青色
public static final int MAGENTA = 0xFFFF00FF; //品红
public static final int TRANSPARENT = 0; //透明色
作者:sunnygarden
链接:https://www.jianshu.com/p/431ff6826854
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。