如何自定义View视图控件案例开发(一)

2015-12-01 10:20 评论 1 条

概要

“自定义视图,自定义控件自定义View”起初以为那是“高手”做的事情,第一感觉是超级难,昨天写了个项目中的页面,自定义了两个LinearLayout,突然发觉并没有之前想象得那么难,而且自定义控件有点类似“封装”,将在项目中或开发中经常需要使用的视图“View”封装起来,形成类似“TextView、EditText、Button”一样的控件,那么我们在布局xml文件中,直接拖拽控件,即可以最快的速度完成布局设置。
自定义控件的内容,后期还会继续更新相应的文章,这里首先介绍比较常用的方法之一:通过定义布局,自定义控件,开发步骤:

1、自定义布局

2、定义属性

3、重写LinearLayout控件构造方法

4、测试

图片0.01

图片0.01

在面试的时候,经常别人问起“会自定义控件吗?会定义视图不?比如说按钮,定义圆角的”,那个时候开始对“自定义”这个词产生了恐惧感,希望看到这里的你不会有这种感觉,说白了就是定义一个布局,很简单的事情,PS:因为平时经常定义布局呀!<^_^>

图片0.02

图片0.02

在这里,看到栏目“我要看”“咨询投诉”“便民福利”除文字不同外,外观都是一样的,所以定义该布局为my_imagecolumn_view.xml,实现效果是左边放置“蓝色竖条”,右边是一个“TextView”,占据一行,如下图:
“办事指南”“权力清单”“重点事项”等视图定义布局my_imageicon_view.xml,实现效果是上边一个“ImageView”,下边一个“TextView”,如下图:

图片0.03

图片0.03

图片0.04

图片0.04

定义属性

定义属性,我们可以定义很多属性,在控件中使用到的,比如:android:background、android:textSize、androidTextColor、android:text,所说的定义属性也是从xml源码自带的属性中,选择我们当前布局需要的。布局my_imagecolumn_view.xml只有一个属性android:text,输入文字信息;布局my_imageicon_view.xml有两个属性android:src、android:text,输入图片地址和文字信息,如下图:

图片0.05

图片0.05

重写LinearLayout构造方法

为什么重写LinearLayout构造方法?我们将自定义的布局转换成View对象后,可以方便使用LinearLayout父类继承的方法、属性,根据自己需要使用的属性、方法选择,重写LinearLayout类中带一个参数和带两个参数的方法。在带两个参数的构造方法中,我们需要做的事情有:

1、将布局转换为View对象

2、初始化布局控件

3、将属性转换为类型数组TypedArray

4、给控件添加属性值

图片0.06

图片0.06

图片0.07

图片0.07

测试

重写完LinearLayout构造方法后,在可视化布局文件中点击“custom & Library Views”,然后刷新一下,显示自定义的视图“MyImageColumn”“MyImageIcon”,按照布局的情况,直接拖拽控件,然后添加定义的属性,即可显示效果,如下图:

图片0.08

图片0.08

总结

自定义控件开发步骤分为四步:第一步定义布局,第二步定义属性,第三步重写构造方法,第四步使用控件,在使用过程就像我们拖拽TextView、ImageView一样,根据情况调整控件之间的位置,实现需要效果。

图片0.09

图片0.09

自定义布局

当前文章价值2.01元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/969.html ,谢谢支持!

资源分享

Android开发工程师笔试题–001 Android开发工程师笔试题--001
关于调用notifyDataSetChanged刷新PullToRefreshListView列表无反应解决办法 关于调用notifyDataSetChange
调用相机拍照后截取指定尺寸大小 调用相机拍照后截取指定尺寸大小
浅谈RoboVM 浅谈RoboVM