2017-04-08 16 views
0

私は矢印を描こうとしていますが、私は本当に奇妙な結果を得ています。 This is how it looks likeこの問題はかなり重なっています。 onDrawメソッド内Android - パスで矢印を正しく描くにはどうすればいいですか?

int radius = 100; //Radius of blue circle to the right 
Path leftArrow = new Path(); 
Paint leftArrowPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 

leftArrowPaint.setStyle(Paint.Style.STROKE); 
leftArrowPaint.setColor(ContextCompat.getColor(getContext(), R.color.buttonText)); 
leftArrowPaint.setAlpha(80); 
leftArrowPaint.setStrokeWidth(8); 

//Start point 
leftArrow.moveTo(touchX-(radius+5), (int)touchY); 
//Line to left 
leftArrow.lineTo(touchX-(radius+60), (int)touchY); 
//Line up 
leftArrow.lineTo(touchX-(radius+30), (int)touchY-30); 
//Move back to the middle 
leftArrow.moveTo(touchX-(radius+60), (int)touchY); 
//Line down 
leftArrow.lineTo(touchX-(radius+30), (int)touchY+30); 
canvas.drawPath(leftArrow, leftArrowPaint); 
leftArrow.reset(); 

答えて

1

[OK]を、私はそれはあなたのために手遅れに知っているが、私は誰かが同じ問題に遭遇した場合には、とにかくつもりな答えです。

ペイントの結合プロパティを指定する必要があります。 https://developer.android.com/reference/android/graphics/Paint.Join.html

leftArrowPaint.setStrokeJoin(Paint.Join.BEVEL); 

また、あなたのために良く見えるものに応じて、Paint.Join.ROUNDを使用することができます。

関連する問題