自定义绘制图片--参照上文,绘制了一个钟表
其实学习知识,只有自己一边绘制,一边了解才会学习的快呢,文章最后会附上项目地址:
不管是绘制多么复杂的控件,都需要一步一步的进行,
首先是在绘制之前先重写onMeasure()方法,测量和设置控件的一些大小
setMeasuredDimension(measure(widthMeasureSpec, true), measure(heightMeasureSpec, false));
int specMode = MeasureSpec.getMode(origin);//得到模式
int specSize = MeasureSpec.getSize(origin);//得到尺寸
判断specMode:
// EXACTLY是精确尺寸,当我们将控件的layout_width或layout_height指定为具体数值时如"50dip",或者为FILL_PARENT是,都是控件大小已经确定的情况,都是精确尺寸。
case MeasureSpec.EXACTLY:
//AT_MOST是最大尺寸,当控件的layout_width或layout_height指定为WRAP_CONTENT时,控件大小一般随着控件的子空间或内容进行变化,此时控件尺寸只要不超过父控件允许的最大尺寸即可
case MeasureSpec.AT_MOST:
//UNSPECIFIED是未指定尺寸,这种情况不多,一般都是父控件是AdapterView,通过measure方法传入的模式。
case MeasureSpec.UNSPECIFIED:
首先是绘制外面最大的圆形
//