黑马程序员技术交流社区

标题: 【上海校区】自定义属性设置颜色 [打印本页]

作者: 梦缠绕的时候    时间: 2018-11-28 09:36
标题: 【上海校区】自定义属性设置颜色
首先我们需要创建一个文件夹,在res下的values下面创建attr
attr.xml里面的内容及介绍

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!--声明-设置样式:表示一个属性组它的名字必须和你自定义视图的名字相同-->
    <declare-styleable name="Lunpan">
        <!--attr:表示单独的一个属性.format代表属性的格式格式包括很多种:比如颜色,数值,枚举等。-->
        <attr name="title_color" format="color"></attr>
        <attr name="title_color2" format="color"></attr>
        <attr name="title_color3" format="color"></attr>
        <attr name="title_color4" format="color"></attr>
        <attr name="title_color5" format="color"></attr>
        <attr name="title_color6" format="color"></attr>
    </declare-styleable>
</resources>

回到需要写颜色的地方用自己的属性写颜色

我是使用自定义控件的时候使用的所以我在初始化操作的时候定义使用
color的类型是int

//用于自定义样式,
        mTypedArray = context.obtainStyledAttributes(attrs, R.styleable.Lunpan);
        color = mTypedArray.getColor(R.styleable.Lunpan_title_color, 0);
        color2 = mTypedArray.getColor(R.styleable.Lunpan_title_color2, 0);
        color3 = mTypedArray.getColor(R.styleable.Lunpan_title_color3, 0);
        color4 = mTypedArray.getColor(R.styleable.Lunpan_title_color4, 0);
        color5 = mTypedArray.getColor(R.styleable.Lunpan_title_color5, 0);
        color6 = mTypedArray.getColor(R.styleable.Lunpan_title_color6, 0);

接下来判断使用,绘制6个弧度

if(color != -1){
            mPaint.setColor(color);
            canvas.drawArc(rectF,start * 0,start,true,mPaint);
        }
        if(color2 != -1){
            mPaint.setColor(color2);
            canvas.drawArc(rectF,start * 1,start,true,mPaint);
        }
        if(color3 != -1){
            mPaint.setColor(color3);
            canvas.drawArc(rectF,start * 2,start,true,mPaint);
        }
        if(color4 != -1){
            mPaint.setColor(color4);
            canvas.drawArc(rectF,start * 3,start,true,mPaint);
        }
        if(color5 != -1){
            mPaint.setColor(color5);
            canvas.drawArc(rectF,start * 4,start,true,mPaint);
        }
        if(color6 != -1){
            mPaint.setColor(color6);
            canvas.drawArc(rectF,start * 5,start,true,mPaint);
        }


---------------------
作者:家辉,喂
来源:CSDN
原文:https://blog.csdn.net/jiahui6666/article/details/83898122
版权声明:本文为博主原创文章,转载请附上博文链接!


作者: 不二晨    时间: 2018-11-28 15:54
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2