2017-11-24 2 views

Antwort

0

Wenn Sie alle in einem Kind Klasse von View haben Sie

@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; 
} 

Bei dem Verfahren außer Kraft setzen könnten press(Point point) Sie mit point to point oder point to line Abstand müssen identifizieren, welche Funktion der in der Nähe zu sein ausgewählt. Und die Methode drag(Point point) hilft Ihnen, das Rect zu ziehen.

Zeichnung

Zeichnung sollte im onDraw(Canvas canvas) Methode nehmen, aber die Instanziierung außerhalb dieser Methode sein sollte. So ermitteln Sie den Rect in Ihrem Konstruktor erstellen oder so

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

Resize

Wenn Sie versuchen Sie, um die zu Größe brauchen keinen neuen Rect erstellen Sie einfach

verwenden werden

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

Drehen

Wenn Sie drehen möchten, müssen Sie die Canvas drehen, dann zeichnen und anschließend zurückdrehen, um etwas anderes zu zeichnen.

canvas.save(); 
canvas.rotate(45); 
canvas.drawRect(rect, paint); 
canvas.restore(); 
Verwandte Themen