android 绘制椭圆 圆角矩形 详细解析

时间:2023-02-04 20:31:22

</pre>1.前几天看别人博客上的一个自定义视图时,看到了一个空心圆环,然后学习了下,把自己理解的  函数参数的<p></p><p><span style="font-size:18px">方法跟大家说下,下面是一个自己做的简单例子</span></p><p><span style="font-size:18px"></span></p><p><span style="font-size:18px"><img src="https://img-blog.csdn.net/20150618173201350?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDczODM4Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="300" height="430" alt="" /></span></p><p><span style="font-size:18px"></span></p><p><span style="font-size:18px">1.绘制矩形</span></p><p></p><div style="font-size:18px"><img src="file:///C:\Users\xinwa\AppData\Roaming\Tencent\Users\1225267219\QQ\WinTemp\RichOle\5FS_ZXY_HO_X@)))UY_]565.png" alt="" /></div><p></p><p style="font-size:18px"><span style="font-size:18px">RectF rect1 = aaanew RectF(left, top, right, bottom);   </span></p><p><span style="font-size:18px"></span></p><p style="font-size:18px"><span style="font-size:18px">    </span><img src="https://img-blog.csdn.net/20150618174550814?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDczODM4Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="500" height="400" align="right" alt="" /><span style="font-size:18px"> left      矩形左上角X坐标值</span><span style="font-size:18px">    </span></p><p style="font-size:18px"><span style="font-size:18px">    top          矩形左上角Y坐标值        right        矩形右下角X坐标值        bottom     矩形右下角Y坐标值</span></p><p style="font-size:18px"><span style="font-size:18px">比如说 Rect rect1 = new RectF(30,30,230,230);</span></p><div><span style="font-size:18px">上面我们设置的矩形宽度为230-30=200,高度为</span></div><div><span style="font-size:18px">230-30 = 200;</span></div><div></div><div><pre name="code" class="java">paint = new Paint();
		paint.setColor(Color.BLUE);//设置画笔颜色为蓝色
		paint.setAntiAlias(true);
		RectF rect1 = new RectF(30,30,230,230);
		canvas.drawRect(rect1, paint);
		



2.绘制弧形

<span style="white-space:pre">		</span>paint = new Paint();
		paint.setColor(Color.BLUE);//设置画笔颜色为蓝色
		paint.setAntiAlias(true);
		
		RectF rect2 = new RectF(300,30,500,230);
		canvas.drawArc(rect2, -180, 180, false, paint);
canvas.drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter,Paint paint);

绘制弧形的时候他还会要求传入一个矩形参数,其实它是根据矩形中的内切圆来绘制弧形的,

startAngle为开始绘制弧的起始角,3点种的方向为0,上面我们设置的是-180度,倒着往回,也就是9点钟方向

sweepAngle为扫过的角度,180的话,也就是一个半圆形

useCenter则为是否显示中心

paint为画笔


3.绘制办圆环

	RectF rect3 = new RectF(30,300,330,600);
		paint.setStrokeWidth(40);//设置画笔的宽度
		paint.setStyle(Paint.Style.STROKE);//设置为空心
		canvas.drawArc(rect3, -90, 90, false, paint);
这个很简单,与上面类似,不同的地方在于我们把画笔的宽度加粗,然后设置为空心,这样他就只会显示

一条弧


最后附上源码  源码