如何自定义View视图控件案例开发(一)
来源:互联网 发布:网络投资平台排名 编辑:程序博客网 时间:2024/04/29 00:13
概要
“自定义视图,自定义控件,自定义View”起初以为那是“高手”做的事情,第一感觉是超级难,昨天写了个项目中的页面,自定义了两个LinearLayout,突然发觉并没有之前想象得那么难,而且自定义控件有点类似“封装”,将在项目中或开发中经常需要使用的视图“View”封装起来,形成类似“TextView、EditText、Button”一样的控件,那么我们在布局xml文件中,直接拖拽控件,即可以最快的速度完成布局设置。
自定义控件的内容,后期还会继续更新相应的文章,这里首先介绍比较常用的方法之一:通过定义布局,自定义控件,开发步骤:
1、自定义布局
2、定义属性
3、重写LinearLayout控件构造方法
4、测试
在面试的时候,经常别人问起“会自定义控件吗?会定义视图不?比如说按钮,定义圆角的”,那个时候开始对“自定义”这个词产生了恐惧感,希望看到这里的你不会有这种感觉,说白了就是定义一个布局,很简单的事情,PS:因为平时经常定义布局呀!<^_^>
在这里,看到栏目“我要看”“咨询投诉”“便民福利”除文字不同外,外观都是一样的,所以定义该布局为my_imagecolumn_view.xml,实现效果是左边放置“蓝色竖条”,右边是一个“TextView”,占据一行,如下图:
“办事指南”“权力清单”“重点事项”等视图定义布局my_imageicon_view.xml,实现效果是上边一个“ImageView”,下边一个“TextView”,如下图:
定义属性
定义属性,我们可以定义很多属性,在控件中使用到的,比如:android:background、android:textSize、androidTextColor、android:text,所说的定义属性也是从xml源码自带的属性中,选择我们当前布局需要的。布局my_imagecolumn_view.xml只有一个属性android:text,输入文字信息;布局my_imageicon_view.xml有两个属性android:src、android:text,输入图片地址和文字信息,如下图:
重写LinearLayout构造方法
为什么重写LinearLayout构造方法?我们将自定义的布局转换成View对象后,可以方便使用LinearLayout父类继承的方法、属性,根据自己需要使用的属性、方法选择,重写LinearLayout类中带一个参数和带两个参数的方法。在带两个参数的构造方法中,我们需要做的事情有:
1、将布局转换为View对象
2、初始化布局控件
3、将属性转换为类型数组TypedArray
4、给控件添加属性值
测试
重写完LinearLayout构造方法后,在可视化布局文件中点击“custom & Library Views”,然后刷新一下,显示自定义的视图“MyImageColumn”“MyImageIcon”,按照布局的情况,直接拖拽控件,然后添加定义的属性,即可显示效果,如下图:
总结
自定义控件开发步骤分为四步:第一步定义布局,第二步定义属性,第三步重写构造方法,第四步使用控件,在使用过程就像我们拖拽TextView、ImageView一样,根据情况调整控件之间的位置,实现需要效果。
自定义布局
- 如何自定义View视图控件案例开发(一)
- 自定义控件View(一)
- 自定义View简单案例-自绘控件
- android 自定义视图控件开发
- 自定义控件View(一)
- 自定义控件---系统控件组合式(案例一)
- Android自定义view案例一气泡框
- 自定义控件开发之----自定义视图状态
- Android自定义控件之自定义View(一)
- 自定义view (一)自定义控件 viewGroup
- Android开发之自定义View(视图)
- Android开发之自定义View(视图)
- Android开发之自定义View(视图)
- android开发自定义View(一)
- 自定义view开发(一)
- Android自定义控件系列案例【一】
- Android--自定义视图控件(一)(Android Studio)
- Android绘图API开发自定义控件视图
- 适配器优化写法
- [Python]python之xlwt模块列宽width、行高Heights详解
- C++ Notes-Inheritance-06
- POJ 3013 Dijkstra
- Android中的shape
- 如何自定义View视图控件案例开发(一)
- javascript对DOM操作实例之购物车
- 父进程是init一定不会变僵尸进程吗?
- linux下出现ping:unknown host www.baidu.com问题时的解决办法——ubuntu下局域网络的配置
- linux初级和初中级常用命令
- Linux系统常用指令、管道、find 文件查找指令
- Leetcode Path Sum II
- leetcode之层次遍历,让每个节点的next指针指向右边
- (五)ArcGIS API For Javascript之GraphicsLayer