DrawArc()方法如何使用

DrawArc()方法如何使用... DrawArc()方法如何使用 展开
 我来答
lilipat
高粉答主

2017-12-30 · 每个回答都超有意思的
知道大有可为答主
回答量:3万
采纳率:94%
帮助的人:5000万
展开全部

安卓方法DrawArc()用于在画布上绘制圆弧,主要方法是通过指定圆弧所在的椭圆对象、起始角度、终止角度来实现。

1. 基本语法:

public void drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)

参数说明

oval:圆弧所在的椭圆对象。

startAngle:圆弧的起始角度。

sweepAngle:圆弧的角度。

useCenter:是否显示半径连线,true表示显示圆弧与圆心的半径连线,false表示不显示。

paint:绘制时所使用的画笔。

注意:Rect类使用需要小心,详见文末附注。

2. 示例

以下代码示范了如何在画布上绘制圆弧:

protected void onDraw(Canvas canvas) {      // TODO Auto-generated method stub      super.onDraw(canvas);      paint.setAntiAlias(true);                       //设置画笔为无锯齿      paint.setColor(Color.BLACK);                    //设置画笔颜色      canvas.drawColor(Color.WHITE);                  //白色背景      paint.setStrokeWidth((float) 3.0);              //线宽      paint.setStyle(Style.STROKE);            RectF oval=new RectF();                     //RectF对象      oval.left=100;                              //左边      oval.top=100;                                   //上边      oval.right=400;                             //右边      oval.bottom=300;                                //下边      canvas.drawArc(oval, 225, 90, false, paint);    //绘制圆弧            //RectF oval=new RectF();                       //RectF对象      oval.left=100;                              //左边      oval.top=400;                                   //上边      oval.right=400;                             //右边      oval.bottom=700;                                //下边      canvas.drawArc(oval, 200, 135, true, paint);    //绘制圆弧  }  

代码中,首先设置了Paint画笔的颜色,并设置Canvas画布为白色背景。接着设置画笔的线宽以及空心效果。然后,定义一个RectF对象,并设置了坐标,调用drawArc方法绘制第一个圆弧,此处设置为不显示半径连线。最后,重新设置了RectF对象坐标,调用drawArc方法绘制第二个圆弧,此例显示半径连线。运行代码,可在手机屏幕上看到下图图所示显示效果。

---------------

附注:

Android中的Rect类——奇葩的思维

最近在工作中遇到了一些问题,总结下来就是Android中Rect这个类造成的。不得不说,不知道Android SDK的开发人员是怎么想的, 这个类设计的太奇葩了。首先介绍一下Rect类:Rect类主要用于表示坐标系中的一块矩形区域,并可以对其做一些简单操作。这块矩形区域,需要用左上右下两个坐标点表示(left,top,right,bottom),你也可以获取一个Rect实例的Width和Height。就在这里,奇葩的事情来了,作为一个有一点经验的做图像或者矩阵运算或者编程的程序员来说,大家的共识是,如果一个矩阵是MxN的,也就是M行N列,那么行号是[0,M-1],列号是[0,N-1]。可是奇葩的Rect类并不是这样的!如果你这么声明一个Rect类:

Rect rect=new Rect(100,50,300,500);

那么右下角(300,500)其实是不在这个矩形里面的,但是左上角(100,50)在,也就是说,这个矩形实际表示的区域是:(100,50,299,499)。另外,Rect计算出的Height和Width倒是对的。所以,在此告诫各位程序员,在涉及Rect运算的时候,尽量不要使用它的右下角左边,即right和bottom。因为他们是错的。当然,在你调用android自己的函数时,是可以使用的,因为Android里面一直保持这么奇葩的思维。

孤独者的注定
2012-12-05
知道答主
回答量:44
采纳率:0%
帮助的人:14.5万
展开全部
在java文档里找不到额
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Fynn_Lee
推荐于2018-11-28 · TA获得超过1613个赞
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:231万
展开全部
绘制一段弧线,它表示由一对坐标、宽度和高度指定的椭圆部分。

public void drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)
oval :指定圆弧的外轮廓矩形区域。
startAngle: 圆弧起始角度,单位为度。
sweepAngle: 圆弧扫过的角度,顺时针方向,单位为度。
useCenter: 如果为True时,在绘制圆弧时将圆心包括在内,通常用来绘制扇形。
paint: 绘制圆弧的画板属性,如颜色,是否填充等。
本例演示了drawArc的四种不同用法,
1. 填充圆弧但不含圆心:
mPaints[0] = new Paint();
mPaints[0].setAntiAlias(true);
mPaints[0].setStyle(Paint.Style.FILL);
mPaints[0].setColor(0x88FF0000);
mUseCenters[0] = false;
2. 填充圆弧带圆心(扇形)
mPaints[1] = new Paint(mPaints[0]);
mPaints[1].setColor(0x8800FF00);
mUseCenters[1] = true;
3. 只绘圆周,不含圆心
mPaints[2] = new Paint(mPaints[0]);
mPaints[2].setStyle(Paint.Style.STROKE);
mPaints[2].setStrokeWidth(4);
mPaints[2].setColor(0x880000FF);
mUseCenters[2] = false;
4. 只绘圆周,带圆心(扇形)
mPaints[3] = new Paint(mPaints[2]);
mPaints[3].setColor(0x88888888);
mUseCenters[3] = true;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式