【发布时间】:2011-08-01 01:45:11
【问题描述】:
我正在尝试绘制一个带圆角的矩形。我有一个执行此操作的 javascript 路径,但 javascript arcTo 方法采用一个矩形(定义其椭圆形),然后是一个设置扫描的参数。
但是,在 Android 版本中,有三个参数。矩形椭圆形(我认为我已经正确定义了),然后是 startAngle 和 sweepAngle(我不了解它的用法),但是当我用我的方式做面条时,我的弧线看起来不像我所期望的那样我猜他们应该工作。
有人知道这方面的好教程吗?
具体来说,我想了解如果我试图从 12 到 3 绘制弧线(在钟面上),然后假设我有一条从 3 向下延伸的线,那么这两个参数会是什么样子然后需要从 3 到 6 圆角,依此类推。
这是我的代码(现在忽略其中的弧数......这只是我猜测这可能如何工作的最新迭代,在之前的更明智的尝试中失败了):
Path ctx = new Path();
ctx.moveTo(X+5,Y); //A
ctx.lineTo(X+W-5,Y);//B
ctx.arcTo(new RectF(X+W, Y, X+W, Y+5), -180, 90); //B arc
ctx.lineTo(X+W,Y+H-5); //C
ctx.arcTo(new RectF(X+W,Y+H,X+W-5,Y+H),90,180); //C arc
ctx.lineTo(X+W/2 +6,Y+H);
ctx.lineTo(X+W/2,Y+H+8);
ctx.lineTo(X+W/2-6,Y+H);
ctx.lineTo(X+5,Y+H);
ctx.arcTo(new RectF(X,Y+H,X,Y+H-5),180,270);
ctx.lineTo(X,Y+5);
ctx.arcTo(new RectF(X,Y,X+5,Y),270,0);
Paint p = new Paint();
p.setColor(0xffff00ff);
canvas.drawPath(ctx, p);
非常感谢。
【问题讨论】: