Ich möchte, dass ein Nutzer meiner App ein Bild zur Laufzeit ändern kann. Der Benutzer sollte in der Lage sein, die Höhe und Breite des Bildes zu ändern, indem er auf die Ecke der Bildansicht tippt und sie wie im folgenden Diagramm gezeigt zieht:
Ich habe viel Zeit damit verbracht, dies zu erforschen, und ich fand Sinn machen Multitouch und Ändern Sie die Größe einer großen Bitmap-Datei auf skalierte Ausgabedatei so etwas wie Pinch Zoom, aber keines davon entspricht meinen Anforderungen.
Zur Zeit verändere ich die Größe der Bitmap mit dieser Funktion und ändere die Breite in der Onprogress-Änderungsmethode der Suchleiste anstelle des Frames. Mit dieser Funktion funktioniert die Änderung der Bildgröße nicht reibungslos.
%Vor%UPDATE:
Arbeiten Sie jetzt reibungslos, indem Sie die Bitmap im Canvas mithilfe der akzeptierten Antwort von Frage.
Jetzt wird der Rahmen um ein Bild herum wie ein Rahmen zum Beschneiden gesetzt.
Bitte helfen Sie mir, dies zu erreichen.
Sie können dies erreichen, indem Sie diese Bibliothek verwenden cropimageview3 verwenden und Ihr Bild im Fließkomma-Zeichensatz festlegen, und Sie sind fertig
"Sie machen es falsch".
Anstatt jedes Mal ein neues Bitmap
zu erstellen, haben Sie mehrere Möglichkeiten:
ImageView
selbst. View
und zeichnen Sie die Bitmap mit Canvas
. Dadurch können Sie Btimap
beliebig dehnen. Wenn Sie mit Canvas
arbeiten, können Sie diese "crop-points" auch auf der Leinwand zeichnen. Um jedoch das gewünschte Verhalten und Aussehen zu erreichen, müssen Sie wahrscheinlich auch diese Methoden überschreiben:
onTouchEvent
- um mit dem Größenänderungsverhalten umzugehen, wenn der Benutzer die Schnittpunkte berührt. onMeasure
- um die Größe deines View
etwas zu erhöhen, weil deine "crop-points" leicht aus dem Bild kommen. Tags und Links android bitmap image-resizing