0
Ich erstelle benutzerdefinierte ImageView mit einigen Funktionen und mein Problem ist die Umsetzung fling. Die aktuelle Ansicht hat Funktionen zum Ziehen und Zoomen. Hier ist onTouchListener:Android: Implementierung fling in onTouchListener der benutzerdefinierten Ansicht
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
savedMatrix.set(matrix);
start.set(event.getX(), event.getY());
mode = DRAG;
break;
case MotionEvent.ACTION_POINTER_DOWN:
oldDist = spacing(event);
if (oldDist > 10f) {
savedMatrix.set(matrix);
midPoint(mid, event);
mode = ZOOM;
}
break;
case MotionEvent.ACTION_UP:
float[] values = new float[9];
matrix.getValues(values);
case MotionEvent.ACTION_POINTER_UP:
mode = NONE;
break;
case MotionEvent.ACTION_MOVE:
if (mode == DRAG) {
matrix.set(savedMatrix);
matrix.postTranslate((event.getX() - start.x),
(event.getY() - start.y));
} else if (mode == ZOOM) {
float newDist = spacing(event);
if (newDist > 10f) {
matrix.set(savedMatrix);
float scale = newDist/oldDist;
//SOME CODE
}
}
break;
}
invalidate();
return true;
}
I fling in Zuhörer erkennen wollen und glatt Matrix nach fling übersetzen. Ich wäre sehr dankbar, wenn es eine funktionierende Lösung für meine Aufgabe gäbe.
Ok, aber wie ich X gesetzt ist, Y in onFling Methode anzuzeigen Koordinaten? – androidAnonDev
event1.getY() und event2.getY() geben Ihnen X- und Y-Koordinaten – sadat
Nein, ich meine glatt Bewegung des Bildes, nachdem wir es schleudern. Meine Aufgabe ist das Erstellen einer Bildansicht wie in Android-Galerie. – androidAnonDev