Ich versuche, eine einfache Zeichnung app ich, die der Benutzer kann einen Punkt meiner benutzerdefinierten Ansicht drücken und ziehen, um ein Rechteck oder einen Kreis zu erstellen, schaffte es, es ziemlich leicht zu tun.android canvas draw shapes mit geist
Das Problem entstand, wenn ich versuche, dem Benutzer den Fortschritt der Bewegung ihrer Form zu zeigen, wie es größer oder kleiner wird.
es zu erklären, einfach ich den gleichen Effekt wollen wie auf Fenster, wenn Sie durch Klicken und Ziehen der Maus auf dem Desktop ..
das ist mein onTouchEvent Methode, wie kann ich es tun?
if (chosenShape.equals("rectangle")) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:// user start pressing
//starting point - one side of the rect
starting_X = touchX;
starting_Y = touchY;
break;
case MotionEvent.ACTION_MOVE:// user move while pressing
break;
case MotionEvent.ACTION_UP:// user release
//ending point - thie side of the circle
ending_X = touchX;
ending_Y = touchY;
// draw the rectangle - opposite side of the rect
drawCanvas.drawRect(starting_X, starting_Y, ending_X, ending_Y, drawPaint);
chosenShape = "";// reseting the shape to keep drawing
break;
default:
return false;
}
} else {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
drawPath.moveTo(touchX, touchY);
break;
case MotionEvent.ACTION_MOVE:
drawPath.lineTo(touchX, touchY);
break;
case MotionEvent.ACTION_UP:
drawCanvas.drawPath(drawPath, drawPaint);
drawPath.reset();
break;
default:
return false;
}
}
ich kann diese Formen speichern, aber ich kann sie nicht aus der Leinwand entfernen, wie mache ich das? Wie kann ich die Leinwand aktualisieren? du meinst invalidate()? weil das nicht funktioniert –
Wenn Sie 'invalidate()' nicht funktionieren können, versuchen Sie 'canvas.drawColor (Color.TRANSPARENT, Mode.CLEAR);' – ScouseChris