美文网首页
Android 自定义属性

Android 自定义属性

作者: 有_味 | 来源:发表于2017-12-13 14:16 被阅读8次

1.创建自定义属性

在app --> src --> res --> values 下创建 attrs.xml 文件
如下图所示 ↓

这里写图片描述

创建好后我们可以在其中看到如下代码

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

现在我们就在里面添加属性 代码如下 ↓

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!---->
    <declare-styleable name="text">
        <attr name="teet" format="string"/>
        <attr name="textAttr" format="integer"/>
        <attr name="android:text"/>
    </declare-styleable>
</resources>

下面我们介绍一下刚才所写的属性

  1. 声明一个属性,我们要知道它的名字是什么,这里就是属性的名字,就想我们写的AppTheme一样,给它取个名字.
<declare-styleable name="text">
  1. 声明名字后,我们需要在其中写一些关于属性的内容了.name声明的是数属性的名字,format声明的是自定义属性的内容.
    • 我们将名为textA自定义属性为"string"
    • 我们将名为textB自定义属性为"integer"
        <attr name="textA" format="string"/>
        <attr name="textB" format="integer"/>

2.使用自定义属性

  1. 添加命名空间
xmlns:zyw="http://schemas.android.com/apk/com.jbh.custom_attrs.text"
这里写图片描述
  • 添加包名是res/"你的包名"/"你自定义属性的名字我这里的名字是text(declare-styleable name="text")"
  • 关于Android的命名空间
//1.Android命名空间
xmlns:android="http://schemas.android.com/apk/res/android"

//2.Android命名空间的使用
    android:layout_width="match_parent"
    android:layout_height="match_parent"
  • xmlns:android="",中android是命名控件的名字,我们自己定义的命名空间的名字为zyw(命名控件的名字可以随意定义,);当我们把名为android的命名控件删掉后,你所使用的控件属性会报红,因为我们用的大多数的属性都是android下的属性.
  • 在控件中使用的时候就是***"命名空间的名字 + : + 属性名称 + = + 属性值 ***
    代码如下↓
<com.jbh.custom_attrs.MyTextView
        android:layout_width="100dp"
        android:layout_height="100dp"
        zyw:textA="helloworld"
        zyw:textB="520"
        />

这里是自定义控件中使用的自定义属性.

结语:本文如果有错请留言!

相关文章

网友评论

      本文标题:Android 自定义属性

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