自定义视图(自定义属性)

我们先把所需要到属性定义好,在res/values/目录下新建xml文件attrs.xml,此文件定义了所有需要到属性,为了说明这个过程就定义了一个attr_title属性。如下所示

attrs.xml

其中:format属性可以用的值包括以下内容

reference:参考某一资源ID

color:颜色值

boolean:布尔值

dimension:尺寸值

float:浮点值

integer:整型值

string:字符串

fraction:百分数

enum:枚举值

flag:位或运算

以上内容可以单独使用,也可以组合使用,比如reference|color,中间用”|”隔开

属性定义好了,下面就看怎么使用了,如下所示

其中有两点需要注意,

1>xmlns:cview =”http://schemas.android.com/apk/res/com.example.testcview”,需要声明自己的命名空间,前面的部分为http://schemas.android.com/apk/res/,此部分为固定,后一部分为自己的应用的包名com.example.testcview

2>在自定义控件上设置自定义属性,cview:attr_title =”自定义题头”,需要增加自己的命名控件,

这样自定义属性就应用到自定义控件上了。

Java代码获取及设置属性内容

在自定义控件的构造函数中获取设置的值并设置到相应位置,如下所示

其中,通过TypedArray tArray =context.obtainStyledAttributes(attrs, R.styleable.CombinView);这句来获取自定义属性内容,然后通过

String title =tArray.getString(R.styleable.CombinView_attr_title);获取指定属性的值

这样,我们就把自定义属性的值取下来了,具体怎么使用就看具体需求就可以了

通过这篇和前两篇的文章,自定义控件的大体流程就差不多了,差的只是在这个架子上増枝添叶,其原理是一样的。

Original: https://www.cnblogs.com/luoaz/p/3985039.html
Author: 小爱博客
Title: 自定义视图(自定义属性)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/580258/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Python 的线程与进程

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月8日
    083
  • vue admin template登录的问题

    版本:3.8.0,将其改为本地登录 问题 后台登录接口尚未开发,为了不影响系统其他接口的开发和测试工作,将vue admin template改为本地登录。 解决方案:手动配置to…

    Java 2023年6月15日
    061
  • spring 工具类大集合

    org.springframework.util.AntPathMatcher 它可以帮助我们做一些路径的匹配,可以用于路径映射规则匹配 。? (任何单字符) * (任意数量字符)…

    Java 2023年6月5日
    0107
  • 纯JS脚本发送HTTP请求

    1 var xmlHttp; 2 var iii = 0; 3 if (window.XMLHttpRequest) { 4 xmlHttp = new XMLHttpReques…

    Java 2023年6月6日
    081
  • Spring Cloud Gateway 内置的过滤器工厂

    内置的过滤器工厂 这里简单将Spring Cloud Gateway内置的所有过滤器工厂整理成了一张表格。如下: 每个过滤器工厂都对应一个实现类,并且这些类的名称必须以Gatewa…

    Java 2023年5月30日
    086
  • 多台云服务器的 Kubernetes 集群搭建

    环境 两台或多台腾讯云服务器(本人搭建用了两台),都是 CentOs 7.6, master 节点:服务器为 4C8G,公网 IP:124.222.61.xxx node1节点:服…

    Java 2023年6月8日
    081
  • (转发)远程桌面连接无显示器的 Linux(Ubuntu/Debian等):使用 Xfce

    手头上有台电脑,安装了 Ubuntu,安装了 postgres 数据库,用于开发机,未连接显示器。在 Windows 开发机上,无法通过 VNC, Anydesk 连接远程桌面到 …

    Java 2023年6月9日
    074
  • Spring Cloud Alibaba 之 Sentinel 限流规则和控制台实例

    这一节我们通过一个简单的实例,学习Sentinel的基本应用。 一、Sentinel 限流核心概念 在学习Sentinel的具体应用之前,我们先来了解一下Sentinel中两个核心…

    Java 2023年5月30日
    080
  • Java面试整理(精简版)

    特征(OOP) 解释说明 通俗理解 关系联系 作用 封装 隐藏内部细节,只对外暴露访问方法 属性/方法封装,便于使用,限制不合理操作 类-类 低耦合,高内聚,增强代码可维护性;**…

    Java 2023年6月5日
    053
  • InnoDB学习(八)之 聚簇索引

    InnoDB中,表数据文件本身就是以主键为索引的B+树,树的叶子节点存放一条条表数据,此索引树被称为表的聚簇索引。聚簇索引也称为聚集索引,聚类索引,簇集索引,聚簇索引确定表中数据的…

    Java 2023年6月8日
    0100
  • git开发

    git是一个分布式版本控制软件。git分为三个部分: 工作区 写文件的地方 暂存区 将add的文件复制一份到./.git/index 版本库 将暂存区的文件移动进来 初始化 cd …

    Java 2023年6月7日
    098
  • Java开发笔记(一百五十二)Date工具的时间格式

    Java开发经常要把当前时间转为字符串,比如”2020-07-08 22:59:48″这样,此时会用到格式化工具SimpleDateFormat,该工具通过…

    Java 2023年6月6日
    075
  • 这个开源组织里的项目都是精品(第二弹)

    前言 之前我写过一篇文章——《这个开源组织里的项目都是精品》,里面列举了Dromara开源组织的4个java项目,每一个都轻量且实用,受到了很多小伙伴的喜爱。Dromara这个开源…

    Java 2023年6月8日
    083
  • 前端(jQuery) 5

    一、初识jQuery jQuery 是一个 JavaScript 库。 jQuery 极大地简化了 JavaScript 编程。 jQuery 很容易学习。 二、jQuery 的功…

    Java 2023年6月5日
    078
  • 类加载的机制及过程

    5个步骤:加载–>验证–>准备–>解析–>初始化 加载:读取二进制文件,根据路径找到对应的class文件然后…

    Java 2023年6月14日
    059
  • Vim编辑器以及linux常用命令

    Shift+G tar -xvf *.tar firewall-cmd –list-ports firewall-cmd –reload systemctl…

    Java 2023年6月8日
    059
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球