文档章节

自定义控件一般步骤

A
 Angels_安杰
发布于 2015/10/18 22:05
字数 351
阅读 594
收藏 2

自定义组合控件的过程

1.自定义一个View 一般来说,继承相对布局,或者线性布局  ViewGroup;  
2.实现父类的构造方法。一般来说,需要在构造方法里初始化自定义的布局文件;    
3.根据一些需要或者需求,定义一些API方法;

----------------------------------  
4.根据需要,自定义控件的属性,可以参照TextView属性;

5.自定义命名空间,例如:

使用eclipse需添加如下命名空间  
  xmlns:自定义名称=http://schemas.android.com/apk/res/《包名》

使用androidstudio开发时只能添加如下命名空间

xmlns:zaizai="http://schemas.android.com/apk/res-auto"


6.自定义我们的属性,在Res/values/attrs.xml

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

&#160;&#160;&#160; <declare-styleable name="TextView">  
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <attr name="mytitle" format="string" />  
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <attr name="desc_on" format="string" />  
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <attr name="desc_off" format="string" />  
&#160;&#160;&#160; </declare-styleable>

</resources>

7.使用我们自定义的属性  
例如:  
&#160;&#160;&#160;&#160;&#160;&#160;&#160; itheima:title="设置自动更新"  
&#160;&#160;&#160;&#160;&#160;&#160;&#160; itheima:desc_on="设置自动更新已经开启"  
&#160;&#160;&#160;&#160;&#160;&#160;&#160; itheima:desc_off="设置自动更新已经关闭"

8.在我们自定义控件的带有两个参数的构造方法里AttributeSet attrs 取出我们的属性值,关联自定义布局文件对应的控件;

© 著作权归作者所有

共有 人打赏支持
A
粉丝 5
博文 138
码字总数 105958
作品 0
广州
程序员
iOS中的UITableView自定义Cell(模仿新浪微博)

定义一个KCStatusTableViewCell实现UITableViewCell,一般实现自定义UITableViewCell需要分为两步:第一初始化控件;第二设置数据,重新设置控件frame。原因就是自定义Cell一般无法固定高度,...

Dumplings
2016/05/23
138
0
iOS开发之代理设计模式

一、代理设计模式的作用: -当A对象要监听B对象的一些行为时,A成为B的代理; -当B对象要通知A对象一些事情时,A成为B的代理。 比如UIScrollView和UITableView,当控制器要监听scrollview的滚...

shenhuniurou
2016/03/21
38
0
android--------自定义控件 之 属性篇

上篇介绍了自定义控件的一个简单案例,本篇文章主要介绍如何给自定义控件自定义一些属性。 Android 中使用自定义属性的一般步骤: 定义declare-styleable,添加attr 使用TypedArray获取自定义...

切切歆语
05/03
0
0
android--------自定义控件 之 方法篇

前面简单的讲述了Android中自定义控件的理论和流程图,今天通过代码来详细的讲解一下其中的方法 首先先创建一个类 CircularView 继承于 View,之后实现构造方法(初始化步骤) View的构造函数...

切切歆语
05/01
0
0
android自定义渐变色圆角View

先看效果图: 4X~@W{D~3372R~S0{%1U`QG.png 分析这是线性渐变色,圆弧半径刚好是高度的一半,文字居中处理,大小,颜色可调 首先开始自定义控件的基本步骤 1、style自定义属性 注:原本我是想...

congge_666
01/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

GO冒泡,二分查找

package mainimport("fmt")func main() {var arr [5]int = [5]int{11,13,9,2,25}maopao(&arr)fmt.Println("arr = ", arr) //[2 9 11 13 25]findIndex := binaryFind(&arr, 0......

汤汤圆圆
8分钟前
1
0
工作2年半跳槽面试阿里,成功拿到offer,凭什么?

2015年刚毕业的我,进入了一家小小的公司实习工作,在学校学了三年软件开发的我,还是想去寻找一份互联网行业的工作,这样更能学以致用发挥自己的特长。一直到18年三月份,我辞掉已有的工作,...

java知识分子
13分钟前
1
0
讲述下:Linux的10个最危险的命令

导读 Linux命令行佷有用、很高效,也很有趣,但有时候也很危险,尤其是在你不确定你自己在正在做什么时候。这篇文章将会向你介绍十条命令,但你最好不要尝试着去使用。 当然,以下命令通常都...

问题终结者
17分钟前
1
0
分库分表后如何部署上线?

引言 我们先来讲一个段子 面试官:“有并发的经验没?” 应聘者:“有一点。” 面试官:“那你们为了处理并发,做了哪些优化?” 应聘者:“前后端分离啊,限流啊,分库分表啊。。” 面试官:...

Java烂猪皮
22分钟前
1
0
Redis源码阅读笔记-快速列表

快速列表 快速列表(quicklist)是由压缩列表(ziplist)组成的一个双向链表,链表中,每一个节点都是以压缩列表(ziplist)的结构保存。 在 Redis3.2 后加入的新数据结构,在列表键中取代了双向链...

Jian_Ming
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部