2017-08-01 6 views
0

によって形状に線を引くことができます。たとえば、あなたが手を塗ったり、与えられた絵に手の線を描いたりするようなものです。どのようにユーザーの塗料やIは、ヒトおよびユーザの手のような絵の何かがその上に線を引くことができます示してアプリを作成したいタッチ

以下のコードに示すようにIはlayoutファイルなしで手の形状を作成します。

私はどのようにタッチすることにより、その形状上の描画や塗料へのユーザーのための可能なことを知っていません。

これを達成する手助けができますか?

ありがとうございました。

は、ここに私のコードです:

public class YeknafareActivity_layout extends View { 

    Paint black_paintbrushstroke; 
    Path Hand; 


    public YeknafareActivity_layout(Context context) { 
     super(context); 

    } 


    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 


     black_paintbrushstroke = new Paint(); 
     black_paintbrushstroke.setColor(Color.BLACK); 
     black_paintbrushstroke.setStyle(Paint.Style.STROKE); 
     black_paintbrushstroke.setStrokeWidth(4); 


     Hand = new Path(); 
     Hand.moveTo(225, 844); // A 
     Hand.lineTo(191, 675); 

     Hand.moveTo(191, 675); // B 
     Hand.lineTo(114, 412); 

     Hand.moveTo(114, 412); // C 
     Hand.lineTo(147, 409); 

     Hand.moveTo(147, 409); // D 
     Hand.lineTo(235, 591); 

     Hand.moveTo(235, 591); // E 
     Hand.lineTo(179, 279); 

     Hand.moveTo(179, 279); // F 
     Hand.lineTo(222, 279); 

     Hand.moveTo(222, 279); // G 
     Hand.lineTo(300, 534); 

     Hand.moveTo(300, 534); // H 
     Hand.lineTo(308, 186); 

     Hand.moveTo(308, 186); // I 
     Hand.lineTo(341, 187); 

     Hand.moveTo(341, 187); // J 
     Hand.lineTo(382, 513); 

     Hand.moveTo(382, 513); // K 
     Hand.lineTo(427, 212); 

     Hand.moveTo(427, 212); // L 
     Hand.lineTo(460, 216); 

     Hand.moveTo(460, 216); // M 
     Hand.lineTo(462, 536); 

     Hand.moveTo(462, 536); // O 
     Hand.lineTo(476, 613); 

     Hand.moveTo(476, 613); // P 
     Hand.lineTo(507, 662); 

     Hand.moveTo(507, 662); // Q 
     Hand.lineTo(593, 501); 

     Hand.moveTo(593, 501); // R 
     Hand.lineTo(628, 492); 

     Hand.moveTo(628, 492); // S 
     Hand.lineTo(645, 511); 

     Hand.moveTo(645, 511); // T 
     Hand.lineTo(470, 960); 

     Hand.moveTo(470, 960); // U 
     Hand.lineTo(386, 989); 

     Hand.moveTo(386, 989); // V 
     Hand.lineTo(280, 947); 

     Hand.lineTo(225, 844); 


     canvas.drawPath(Hand, black_paintbrushstroke); 

答えて

0

最後に、私は自分で答えを見つける、ここソリューションです:

パス&ペイントを宣言した後、あなたが画面上で何かを描くことができるようにあなたは、コードの下に使用することができます。

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    float xpos = event.getX(); 
    float ypos = event.getY(); 

    switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      path.moveTo(xpos, ypos); 
      return true; 
     case MotionEvent.ACTION_MOVE: 
      path.lineTo(xpos, ypos); 
      break; 
     case MotionEvent.ACTION_UP: 
      break; 
     default: 
      return false; 
    } 
    invalidate(); 
    return true; 
} 

それは私のために働く:)

0

あなたは、ユーザのタッチイベントに応答するカスタムビューでonTouchEventメソッドをオーバーライドする必要があります。

Path path = new Path(); 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    if(event.getAction() == MotionEvent.ACTION_MOVE){ 
     path.lineTo(event.getX(), event.getY()); 
     invalidate(); 
    } 
} 
+0

あなたの助けに感謝しますが、それは動作しませんでした!今でもユーザーはまだ線を描くことができません。 –

+0

私の問題を解決できる人はいますか?私は本当にそれを感謝します。 –

関連する問題

 関連する問題