android.graphics.Path的替代方案

时间:2012-05-29 14:15:24

标签: android android-canvas

我对使用canvas.drawPath(path,paint)函数在画布上绘制平滑线条的路径类的问题感到非常震惊。路径类对于使用path.quadTo()cubeTo()函数平滑线条非常有用。但是它们不会让你画出不同厚度的平滑线。我想在画布上绘制一条路径,厚度增加到一定的阈值宽度,然后在最后变细。此外,我尝试在用户的每个触摸点使用多个路径但是当用户非常快地移动他的手指时失败,因为此时获得了长长度的单个路径。请帮助我,我遇到了大麻烦。有没有其他方法可以平滑线条。

谢谢

2 个答案:

答案 0 :(得分:0)

我想您正在询问如何改变使用Path方法绘制的canvas.drawPath()的宽度。以下代码段可以帮助您:

private Paint myPaint;
myPaint.setStyle(Paint.Style.STROKE);
myPaint.setStrokeJoin(Paint.Join.ROUND);
myPaint.setStrokeCap(Paint.Cap.ROUND);
if(someFlag != thresholdValue)
   myPaint.setStrokeWidth(20);
else
   {
        myPaint.setStrokeWidth(someReducedValue); // or have a counter updated in your thread to regularly decrement the value
   }

//..

..//

canvas.drawPath(path, myPaint); // inside onDraw() where path corresponds to your Path variable

答案 1 :(得分:0)

执行此操作的正确方法是使用PathMeausre类,我们可以轻松地从prent路径获取子路径并相应地制作它们。当我完成代码后,我会很快发布该片段。