setBackground()

作者: sunnygarden | 来源:发表于2016-12-24 17:47 被阅读0次

    一、给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;          //透明色
    

    相关文章

      网友评论

        本文标题:setBackground()

        本文链接:https://www.haomeiwen.com/subject/nttrvttx.html