美文网首页安卓UI
番外篇2:自定义View属性全解

番外篇2:自定义View属性全解

作者: 奔跑的佩恩 | 来源:发表于2019-04-17 12:43 被阅读57次

前言

在android自定义view的过程中,偶尔会涉及到设置外部资源的问题。那么今天就来讲讲自定义view属性的问题吧。

今天涉及的知识有:

  1. 创建 attrs.xml文件及其属性讲解
  2. 在自定义view中调用及获取资源
  3. 在xml中引用自定义控件及设置属性
  4. 需要注意的点。

大家可以在“demo大师”上搜索《番外篇2:自定义View属性全解》下载对应demo

先来张效果图:


1.png

一. 创建 attrs.xml文件及其属性讲解

attrs.xml一般位于项目 的 res/values 文件夹下,若此路径下没有attrs.xml文件,则需要创建。
创建流程是这样的:选中 res/values 文件夹 -----> 右键 -----> New ----->XML -----> Values XML File ,然后在弹出的输入框中输入文件名:attrs,点击finish即可。具体操作如下:


1.gif

生成的 attrs.xml文件中代码如下:

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

接下来要讲的是就是attrs中标签和属性的知识。

1.1 declare-styleable 标签

一般一个 declare-styleable 标签对应具体的一个控件,一个<resources>标签中可以含一个或多个 declare-styleable,也即意味着不同的控件对应的资源设置都可以放置到一个 attrs.xml文件中。declare-styleable 标签使用类似如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="名称1">

    </declare-styleable>
    <declare-styleable name="名称2">
        
    </declare-styleable>

</resources>

以上代码表示一个attrs.xml中有两组资源。declare-styleable 标签中的 “name="名称1” 标记着这个资源的唯一标志,当自定义控件要引用具体资源的时候,就要用到 name的值。这里我给 name设值为 mytest(name的值自己定义,但要唯一),表示这是一个 名为 “mytest”的一组资源,具体表示如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="mytest">

    </declare-styleable>
</resources>

ok,一组资源的名称取了,现在要给这组资源设置具体的属性命名。属性标签用 attr,如下:

    <declare-styleable name="mytest">

      <attr name="" format=""/>

    </declare-styleable>

attr 标签有两个属性,name 和 format,name表示属性名称,由你自己定义,注意最好保持唯一,format 表示属性类型。format类型种类如下:

相关文章

网友评论

    本文标题:番外篇2:自定义View属性全解

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