文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android自定义组件:1、什么是自定义组件、自定义组件的方式、定义自定义属性

2022-06-06 13:51

关注

声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!!

目录

一、前言

二、什么是自定义组件

三、自定义组件的方式

1、组合现有组件

2、在某一个组件上进行扩展

3、完全自定义组件

四、定义自定义属性

1、attrs.xml 文件介绍

2、attrs.xml 文件具体写法

3、attrs.xml 文件解释

一、前言

最近项目中用到很多自定义组件的知识,所以想把几年前自学自定义组件的笔记整理一下和大家一起分享,也方便自己巩固。之后也会陆续把以前在公司项目当中比较经典的自定义组件案例,抽离出来和大家一起分享

二、什么是自定义组件

Android为我们提供了丰富的 UI组件,基本的应用已经足够了,但在实际开发中,如果我们想构建更加复杂的 UI视图,此时就需要使用自定义组件了。

三、自定义组件的方式

自定义组件的三种方式:

1、组合现有组件

组合现有Android默认提供的组件,继承ViewGroup或其子Layout类等布局类进行组合。

如:如果是我们自己写Layout布局,每次可能要一个个写或拖动进去。

那我们把这整个Layout布局定义成一个组件,下次就直接使用即可,相当于打包。

2、在某一个组件上进行扩展

调整现有Android默认提供的组件,继承View的子类具体类。

如:继承ImageView实现在图片上添加文字,继承Toast实现在文字下面添加图片等

3、完全自定义组件

继承View基类,里面界面及事件完全由自己控制。

如:我们知道所有组件都是继承View而来,那么你也就可以直接自己写一个类继承View,重写View里面的相关方法或事件,然后自己去控制操作。 这个是最原始的,完全自定义的,不是基于任何Android默认提供的组件去定义的。

四、定义自定义属性 1、attrs.xml 文件介绍

不管使用哪种自定义组件的方式,首先当然是你要写出自定义组件的一个类文件,

在这个类当中,如果你需要有自定义的属性。

所谓自定义属性是什么?

如:像android提供的默认组件,一般都有定义宽、高、字体大小或颜色的属性,

如果除了这些属性以外,还想在你的自定义组件里面,拥有提供自己的属性,这个就是自定义属性。

如何创建自定义属性文件?

这个时候我们就要使用到一个属性资源配置文件,它是一个xml文件,

然后将这个类里,需要外界传入值的属性,定义在这个属性资源配置文件中,

在工程里的 .../res/values/ 目录下创建一个 attrs.xml,

文件名 attrs由英文单词 attribute而来,见名知意的写法,

文件名并不是只能写成这样,这样写只有一个目的,别人一看就知道这个文件是属性资源文件了。

2、attrs.xml 文件具体写法

配置XML属性资源文件的方式,attrs.xml 文件 具体写法如下:



3、attrs.xml 文件解释

attrs.xml文件解释如下:


attrs.xml文件解释如下
resources 资源
declare-styleable 声明风格样式   name 风格样式的名称
attrs 子元素
name 属性名
format 属性格式
定义具体的属性,format 表示这个属性的值的类型,类型有以下几种:
1、reference 
参考指定Theme中资源ID,这个类型的意思,就是你传的值可以是引用资源
2、string 字符串,
如果你想别人既能直接写字符串值,也可以用类似写"@string/test"引用资源的方式,可以写成 format="string|reference"
3、color 颜色
4、boolean 布尔值
5、dimension 尺寸值
6、float 浮点型
7、integer 整型
8、fraction 百分数
9、enum 枚举。只能在提供的值里面选一个,如下:
10、flag 位或运算

作者:luminal_Andy


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯