文档章节

自定义控件一般步骤

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中自定义控件的理论和流程图,今天通过代码来详细的讲解一下其中的方法 首先先创建一个类 CircularView 继承于 View,之后实现构造方法(初始化步骤) View的构造函数...

切切歆语
05/01
0
0
android--------自定义控件 之 属性篇

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

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

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

congge_666
01/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 教程:在 Confluence 中导航

当你对 Confluence 有所了解后,你会发现 Confluence 使用起来非常简单。这个教程主要是针对你使用的 Confluence 界面进行一些说明,同时向你展示在那里可以进行一些通用的任务和操作。 空间...

honeymose
今天
2
0
sed, awk 练习

1. sed打印某行到某行之间的内容 2. sed 转换大小写 将单词首字母转化大写 将所有小写转化大写 3. sed 在某一行最后面添加一个数字 4. 删除某行到最后一行 解析: {:a;N;$!ba;d} :a : 是...

Fc丶
今天
2
0
babel6升级到7,jest-babel报错:Requires Babel "^7.0.0-0", but was loaded with "6.26.3".

自从将前端环境更新到babel7,jest-babel之前是基于babel6的,执行时候就会报:Requires Babel "^7.0.0-0", but was loaded with "6.26.3". 很烦,因为连续帮好几台电脑修复这个问题,所以记...

曾建凯
今天
1
0
探索802.11ax

802.11ax承诺在真实条件下改善峰值性能和最差情况。 如何改善今天的Wi-Fi? 在决定如何改进当前版本以外的Wi-Fi时,802.11ac,IEEE和Wi-Fi联盟调查了Wi-Fi部署和行为,以确定更广泛使用的障碍...

linuxprobe16
今天
2
0
使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部