自定义View(自定义属性)

作者: Only凹凸曼 | 来源:发表于2016-11-26 20:17 被阅读131次

背景

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

自定义属性

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

  1. 在valuse目录下面创建一些自定义属性的XML,比如attrs.xml,也可以是arrts_circle.xml,只要以arrts开头就可以,没有什么特殊要求,比如:
    <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="CircleView"> <attr name="circle_color" format="color" /> </declare-styleable> </resources>
    上面定义了一个自定义的属性集"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. 我们只要在布局里面设置颜色值就可以了
    <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <com.aotuman.circleview.view.CircleView android:padding="10dp" android:layout_margin="10dp" android:layout_width="wrap_content" android:layout_height="200dp" app:circle_color="@color/colorAccent" android:background="@android:color/black"/> </RelativeLayout>
    大家需要注意的是,我不只是加了一行修改颜色的代码,除了
    app:circle_color="@color/colorAccent"
    之外还有下面这一行也是必须的:
    xmlns:app="http://schemas.android.com/apk/res-auto"

结尾

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


自定义颜色

相关文章

  • Android自定义View总结

    Android自定义View总结 [toc] 步骤 自定义View的属性 在View的构造方法获取我们自定义的属性...

  • Android自定义View步骤

    自定义View 的步骤 自定义View属性 在View的构造方法中获得自定义的属性 重写onMesure 重写on...

  • 自定义View的简单流程

    自定义View的步骤 1、自定义属性 1)分析自定义的View中需要哪些的自定义属性,在res/values/at...

  • 安卓自定义 View 启航

    先总结下自定义 View 的步骤: 自定义 View 的属性 在 View 的构造方法中获得我们自定义的属性 [重...

  • 自定义View

    自定义view的属性 在view的构造方法中获得我们自定义的属性 重写onMeasure 重写onDraw 自定义...

  • Android相关知识点博客记录

    自定义属性 Android自定义View(二、深入解析自定义属性) Android中XML的命名空间、自定义属性 ...

  • Android三级联动wheel代码分析(二)

    自定义View的步骤:1、自定义View的属性2、在View的构造方法中获得我们自定义的属性[3、重写onMesu...

  • 自定义View入门

    一、自定义View的基本步骤概括 自定义View的属性 在View子类的构造方法中获取自定义的属性 重写 onMe...

  • 自定义ViewGroup的简单流程

    自定义ViewGroup的步骤 1、自定义属性 参考UI控件:自定义View 2、onMeasure() View...

  • 哥哥手把手教你安卓自定义view,来了老弟

    先总结下自定义View的步骤:1、自定义View的属性2、在View的构造方法中获得我们自定义的属性[3、重写on...

网友评论

    本文标题:自定义View(自定义属性)

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