0

関数を使用してキャンバスに滑らかな線を描画するために使用されるパスクラスの問題に悩まされてきましたcanvas.drawPath(path,paint)path.quadTo()パスクラスは、 and関数を使用して行を平滑化するのに役立ちcubeTo()ます。ただし、太さを変えて滑らかな輪郭を描くことはできません。一定のしきい値幅まで厚みを増して、最後にスリムにするパスをキャンバスに描画したいと思います。また、ユーザーのすべてのタッチポイントで多数のパスを使用しようとしましたが、ユーザーが指を非常に速く動かすと失敗します。そのとき、長い長さの単一のパスが取得されるためです。私がこれで大きな問題を抱えているのを助けてください。線を滑らかにする他の方法はありますか?

ありがとうございました

4

2 に答える 2

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
于 2012-05-29T14:39:56.597 に答える
0

これを行う正しい方法は、PathMeausreクラスを使用することです。このクラスでは、prentパスからsubPathsを簡単に取得し、それに応じてそれらを操作できます。コードが完成したら、すぐにスニペットを投稿します。

于 2012-06-02T05:53:18.990 に答える