画圆不整

来源:互联网 发布:php批量解压文件修改 编辑:程序博客网 时间:2024/06/16 08:06

在学习自定义View,一直以为坐标是相对于屏幕或者父控件。导致画圆不整,如下,以为控件会是位于屏幕左上角

@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawColor(Color.BLACK);canvas.drawCircle(0, 0, getMeasuredWidth()/2, paint);}


然而这个时候的圆心位于canvas的左上角,如图

也就是说 canvas.drawCircle(cx, cy, radius,paint)   params  cx: 表示为所要画的圆心的x坐标是相对于这张画布的,而不是父View或者整个屏幕,同理cy也是如此。

所以若这样设置。那么则圆心坐标位于这张画布的中心点上

@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawColor(Color.BLACK);canvas.drawCircle(getWidth()/2, getHeight()/2, getMeasuredWidth()/2, paint);}


0 0
原创粉丝点击