android 自定义组件
来源:互联网 发布:ov7670中文数据手册 编辑:程序博客网 时间:2024/06/11 20:11
这是一边介绍android自定义控件的文章,记录自己的认知,一直会有更新。
声明:本文是根据一些前辈的博客加上自己的理解组装而成。
未完待续...
Android画图最基本的三个对象(Color,Paint,Canvas)
三个类都存放在 android.graphics包下
1) Color :颜色对象,相当于现实生活中的 ‘调料’
2) Paint : 画笔对象,相当于现实生活中画图用的 ‘笔’————主要的还是对‘画笔’进行设置
3) Canvas : 画布对象,相当于现实生活中画图用的 ‘纸 或 布’
http://blog.csdn.net/hzc543806053/article/details/7672965
一般来说,自定义控件都会去重写View的onMeasure方法,因为该方法指定该控件在屏幕上的大小。
protected void?onMeasure?(int widthMeasureSpec, int heightMeasureSpec)
onMeasure传入的两个参数是由上一层控件传入的大小,有多种情况,重写该方法时需要对计算控件的实际大小,然后调用setMeasuredDimension(int, int)设置实际大小。
onMeasure传入的widthMeasureSpec和heightMeasureSpec不是一般的尺寸数值,而是将模式和尺寸组合在一起的数值。我们需要通过int mode = MeasureSpec.getMode(widthMeasureSpec)得到模式,用int size =?MeasureSpec.getSize(widthMeasureSpec)得到尺寸。
mode共有三种情况,取值分别为MeasureSpec.UNSPECIFIED, MeasureSpec.EXACTLY, MeasureSpec.AT_MOST。
MeasureSpec.EXACTLY是精确尺寸,当我们将控件的layout_width或layout_height指定为具体数值时如andorid:layout_width="50dip",或者为FILL_PARENT是,都是控件大小已经确定的情况,都是精确尺寸。
MeasureSpec.AT_MOST是最大尺寸,当控件的layout_width或layout_height指定为WRAP_CONTENT时,控件大小一般随着控件的子空间或内容进行变化,此时控件尺寸只要不超过父控件允许的最大尺寸即可。因此,此时的mode是AT_MOST,size给出了父控件允许的最大尺寸。
MeasureSpec.UNSPECIFIED是未指定尺寸,这种情况不多,一般都是父控件是AdapterView,通过measure方法传入的模式。
http://www.android100.org/html/201409/12/64338.html- 【Android】Android自定义组件
- 自定义android RadioPreference组件
- android自定义组件
- Android自定义组件
- Android自定义Button组件
- Android-构造自定义组件
- android 自定义view组件
- android 自定义组件
- android自定义组件
- Android-创建自定义组件
- android 绘图、自定义组件
- android自定义分页组件
- Android 自定义分页组件
- Android自定义AlertDialog组件
- Android 自定义分页组件
- android 中自定义组件
- android 自定义组件
- Android自定义组件(1)
- 堆和栈的总结
- 为什么我要用 Node.js? 案例逐一介绍
- 函数getopt(),及其参数optind
- 自学编程的那些事
- github 资源总结
- android 自定义组件
- Android Socket进程通信——Client与Server之间的通信机制
- 初识C#开源商城BrnShop及BrnMall
- 文件描述符和套接字
- 《赢在中国》总导演、优米网CEO王利芬女士助力第七届企业在线学习大会
- [ERROR] Can't find messagefile '/usr/bin/share/mysql/errmsg.sys'
- hiho一下 第六十六周
- C++Primer第五版 11.3.4节练习
- Hash Table哈希表和Hash List哈希链表的知识汇总