Android自定义控件
来源:互联网 发布:gps工作原理 知乎 编辑:程序博客网 时间:2024/06/08 14:03
出自:http://www.92coding.com/blog/index.php/archives/143.html
今天和大家分享下组合控件的使用。很多时候android自定义控件并不能满足需求,如何做呢?很多方法,可以自己绘制一个,可以通过继承基础控件来重写某些环节,当然也可以将控件组合成一个新控件,这也是最方便的一个方法。今天就来介绍下如何使用组合控件,将通过两个实例来介绍。
第一个实现一个带图片和文字的按钮,如图所示:
<a href="http://blog.92coding.com/wp-content/uploads/2012/01/12.jpg" class="cboxElement" rel="example4" 143"="" style="text-decoration: initial; color: rgb(1, 150, 227);">
整个过程可以分四步走。第一步,定义一个layout,实现按钮内部的布局。代码如下:
custom_button.xml
这个xml实现一个左图右字的布局,接下来写一个类继承LinearLayout,导入刚刚的布局,并且设置需要的方法,从而使的能在代码中控制这个自定义控件内容的显示。代码如下:
CustomButton.java
第三步,在需要使用这个自定义控件的layout中加入这控件,只需要在xml中加入即可。方法如下:
main.xml
注意的是,控件标签使用完整的类名即可。为了给按钮一个点击效果,你需要给他一个selector背景,这里就不说了。
最后一步,即在activity中设置该控件的内容。当然,在xml中也可以设置,但是只能设置一个,当我们需要两次使用这样的控件,并且显示内容不同时就不行了。在activity中设置也非常简单,我们在CustomButton这个类中已经写好了相应的方法,简单调用即可。代码如下:
这样,一个带文字和图片的组合按钮控件就完成了。这样梳理一下,使用还是非常简单的。组合控件能做的事还非常多,主要是在类似上例中的CustomButton类中写好要使用的方法即可。
再来看一个组合控件,带删除按钮的EidtText。即在用户输入后,会出现删除按钮,点击即可取消用户输入。
定义方法和上例一样。首先写一个自定义控件的布局:
custom_editview.xml
实现输入框右侧带按钮效果,注意将按钮隐藏。然后写一个CustomEditView类,实现删除用户输入功能。这里用到了TextWatch这个接口,监听输入框中的文字变化。使用也很简单,实现他的三个方法即可。看代码:
CustomEditView.java
在TextWatch接口的afterTextChanged方法中对文字进行判断,若长度为0,就隐藏按钮,否则,显示按钮。
另外,实现ImageButton(即那个叉)的点击事件,删除输入框中的内容,并隐藏按钮。
后面两步的实现就是加入到实际布局中:
main.xml
最后显示效果如图:
<a href="http://blog.92coding.com/wp-content/uploads/2012/01/21.jpg" class="cboxElement" rel="example4" 143"="" style="text-decoration: initial; color: rgb(1, 150, 227);">
源码下载地址:http://115.com/file/aq5qvh67
- [Android自定义控件] Android自定义控件
- Android自定义控件] Android自定义控件
- [Android自定义控件] Android自定义控件
- [Android自定义控件] Android自定义控件
- [Android自定义控件] Android自定义控件
- [Android自定义控件] Android自定义控件
- [Android自定义控件] Android自定义控件
- Android 自定义控件 单页翻书控件
- android虚线控件---自定义控件
- android自定义控件实例 --控件
- Android自定义控件--组合控件
- android 控件 自定义组合控件
- 【android自定义控件】ProgressBar自定义
- Android自定义控件 自定义属性
- Android自定义控件 -- 自定义View
- Android自定义控件 -- 自定义ViewGroup
- Android 自定义控件 自定义标题栏
- Android 自定义控件-自定义进度条。
- 【Python排序搜索基本算法】之Dijkstra最短路径算法(Dijkstra's Shortest-Path Algorithm)
- Qt小笔记
- Set集合容器
- 创业干货分享:初创公司移动应用开发工具库(集合)
- JVM 参数调优
- Android自定义控件
- ADO Command 对象
- 单步调试进不去断点
- USACO Training 3.4.1 Closed Fences闭合的栅栏 题解与分析
- ORACLE 完全卸载
- 天涯bbs谈感情
- POJ,3032,Card Trick
- win7 x64安装oracle 10g x64的一些要点
- (step3.2.2)hdu 1087(Super Jumping! Jumping! Jumping!——简单DP)