2017-11-24 6 views

答えて

0

あなたがViewからすべての子クラスにしている場合、あなたは機能があることが、最も近いpoint to pointまたはpoint to line距離を特定する必要がありpress(Point point)方法で

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    final Point point = new Point((int) event.getX(), (int) event.getY()); 
    switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      press(point); 
      break; 
     case MotionEvent.ACTION_MOVE: 
      drag(point); 
      break; 
     case MotionEvent.ACTION_UP: 
      release(point); 
      break; 
    } 
    return true; 
} 

をオーバーライドすることができます選択された。そして、方法drag(Point point)は、rectをドラッグするのに役立ちます。

を描くドローイングはonDraw(Canvas canvas)方法で行われなければならないが、インスタンス化は、このメソッドの外でなければなりません。あなたが新しいのRectを作成する必要はありませんサイズを変更しようとするので、あなたがちょうど使用しますリサイズ

あなたのコンストラクタでRectかそこら

Rect rect = new rect(10, 10, 100, 100) 

を作成

rect.set(x, y, dx, dy)

ローテーション

回転させたいときは、Canvasを回転させ、次に回転して別のものを描画する必要があります。

canvas.save(); 
canvas.rotate(45); 
canvas.drawRect(rect, paint); 
canvas.restore(); 
関連する問題