自定义View(自定义属性)

背景

之前讲了Android自定义View实现圆形效果,但是很简单,并没有实现一些自定义的属性,今天就大致实现以下自定义属性。

自定义属性

我们在布局文件里面可以写一些以android开头的属性,这些都是系统的自带属性,我们也可以定义一些自己的。

  1. 在valuse目录下面创建一些自定义属性的XML,比如attrs.xml,也可以是arrts_circle.xml,只要以arrts开头就可以,没有什么特殊要求,比如:

    上面定义了一个自定义的属性集"CircleView",在这个集合里面也可以有多种自定义属性,我们只是制定了颜色,其中format可以有多种格式,color表示的是颜色,其他的reference表示资源Id,dimension表示尺寸大小,string,integer,boolean表示的是基本数据类型,等等。
  2. 在自定义View的构造方法里面解析自定义属性的值并作相应的处理,在我们之前的代码里面只要修改构造方法就可以:
    public CircleView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); TypedArrayarray = context.obtainStyledAttributes(attrs,R.styleable.CircleView); mColor = array.getColor(R.styleable.CircleView_circle_color,Color.GREEN); array.recycle(); init(); }
  3. 我们只要在布局里面设置颜色值就可以了

    大家需要注意的是,我不只是加了一行修改颜色的代码,除了
    app:circle_color="@color/colorAccent"
    之外还有下面这一行也是必须的:
    xmlns:app="http://schemas.android.com/apk/res-auto"

结尾

好了,到这里为止,我们简单的自定义属性也已经完成了,我们来看一下自定义颜色的效果图


自定义View(自定义属性)_第1张图片
自定义颜色

你可能感兴趣的:(自定义View(自定义属性))