在自定义View时,我们通常会去重写onDraw()方法来绘制View的显示内容。如果该View还需要使用wrap_content属性,那么还必须重写onMeasure()方法。另外,通过自定义attrs属性,还可以设置新的属性配置值。...
分类:
移动开发 时间:
2016-05-18 19:23:47
阅读次数:
338
大家知道,自定义View有三个重要的步骤:measure,layout,draw。而measure处于该链条的首端,占据着极其重要的地位;然而对于measure的理解却不是那么容易,许多问题都是一知半解,比如:为什么父View影响到了子View的MeasureSpec的生成?为什么我们自定义一个View在布局时将其宽或者高指定为wrap_content但是其实际是match_parent的效果?子V...
分类:
其他好文 时间:
2016-05-13 14:44:03
阅读次数:
226
1.创建3个“菜单”视图,并且将“菜单”添加到父视图。 2.将左右菜单的宽度设置为当前屏幕宽度的百分之八十,高度设为当前屏幕高度的值;中间菜单的宽度和高度设置为当前屏幕的宽高值。 1) 重载onMeasure()方法,并且测量菜单视图的宽高值。 3)设置为当前屏幕的百分之八十,需要用到以下方法 Me ...
分类:
其他好文 时间:
2016-05-13 12:54:18
阅读次数:
166
View的测量会回调onMeasure方法,因此首先要复写onMeasure方法,这个方法的作用进行宽高的测量,然后必须调用setMeasuredDimension进行设置,不然会触发IllegalStateException异常不复写此方法,默认采用EXACTLY模式测量,而EXACTLY只支持match_parent和指定的尺寸,指定为wrap_content的话无效,因为wrap_conten...
分类:
移动开发 时间:
2016-05-13 03:40:39
阅读次数:
195
这个系列是老外写的,干货!翻译出来一起学习。如有不妥,不吝赐教!
Android自定义视图一:扩展现有的视图,添加新的XML属性
Android自定义视图二:如何绘制内容
Android自定义视图三:给自定义视图添加“流畅”的动画
Android自定义视图四:定制onMeasure强制显示为方形
上一篇开发之后的效果如上图。不过看着这张图,需要注意的不是我们自定义视图展示了什么,而是这个视图的大...
分类:
移动开发 时间:
2016-05-12 23:29:31
阅读次数:
399
具体功能看效果图:
如何录屏小贴士 使用手机自带的录屏软件,录制后卫MP4格式,在使用下面这个网址介绍的方法,转为gif(我是用的是在线转的那个,挺好用)
Android手机如何录制屏幕及转GIF
这个自定义控件涉及到的知识点:
自定义ViewGroup中onMeasure和onLayout的写法
弹性滚动Scroller的用法
速度轨迹追踪器VelocityTracker的用法
如何...
分类:
其他好文 时间:
2016-05-12 19:57:35
阅读次数:
264
一般使用自定义View需要重写onDraw()函数,如果需要使用wrap_content样式,则还需要重写onMeasure函数。通常我们绘制一个圆环是通过绘制两个半径不同圆心相同的颜色不一样的圆下面介绍使用canvas.drwARc()函数绘制圆环(或者圆弧)canvas.drawArc(rectF,startDegree,60,false,mPaint);该函数有四个参数
参数1:一个Rect...
分类:
移动开发 时间:
2016-05-12 13:41:28
阅读次数:
180
onFinishInflate() 回调方法,当应用从XML加载该组件并用它构建界面之后调用的方法 onMeasure() 检测View组件及其子组件的大小 onLayout() 当该组件需要分配其子组件的位置、大小时 onSizeChange() 当该组件的大小被改变时 onDraw() 当组件将 ...
分类:
移动开发 时间:
2016-05-06 20:20:18
阅读次数:
176
1.自定义view的步骤:a.在values/attrs.xml文件中创建自定义的属性;
b.自定义view,在view的构造方法中获取到自定义的属性;
c.重写onDraw()方法;
d.重写onMeasure()方法。
在values/attrs.xml文件中创建自定义的属性
<attr n...
分类:
其他好文 时间:
2016-05-06 16:05:52
阅读次数:
244
完整步骤自定义View的步骤:1、在res/values中自定义View的属性2、在构造方法中遍历我们自定义的属性,并根据这些属性值对成员变量初始化3、重写onMesure,测量view的宽高,view视图大小的将在这里最终确定,子类可以覆写onMeasure()方法实现自己的计算视图大小的方式,并... ...
分类:
其他好文 时间:
2016-05-05 10:58:39
阅读次数:
256