Android开发——CustomView(扩展视图、组合视图)
自定义View:
扩展控件。
对控件已有功能的一个扩展,使其适应项目需求
例子:
可以下载图片的自定义ImageView
1.继承ImageView
2.添加下载功能
效果图:
自定义属性:
1.在values文件夹下面的任意文件里面
声明一个属性:declare-styleable
这个属性,就是自定义属性集合,里面可以放多个属性。
有一个name,需要设置为自定义View的名字
2.在declare-styleable里面,声明控件需要的属性:
<attr name="" format=""/>
有多种属性,按需求选择
3.在布局文件中使用:
需要自己添加,命名控件:
xmlns:xxxxx="http://schemas.android.com/apk/res-auto"
在对应的控件里面,设置自定义的属性:
xxxxx.attrname=""即可使用
4.获取到自定义属性的值:
context.obtainStyleAttributes(attrs,R.styleable.属性集合的名字);
typeArray里面保存了你声明的属性的值
typeArray.get...(R.styleable.属性结合的名字_属性的名字[,defValue]);
自定义View实现购物车的加减功能:
设计思路:
(1)继承线性布局
(2)添加自己需要的控件(2个ImageButton,1个EditText)
(3)处理相应的点击事件
效果图:
自定义View实现流式布局:(热门标签、搜索历史等)
效果图:![](https://img-blog.csdn.net/20160308103137039?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
设计思路:
(1)继承ViewGoup
(2)onMeasure()方法中测量宽高,测量子View的宽高,设定自己的宽高
(3)onLayout()摆放子控件的位置
源码稍后放出: