Android 4.3 Bildansicht ScaleType.MATRIX
heute Stelle ich das neue Android JB 4.3 auf meinem Nexus 7 und ich versuchte meine Anwendung.
Alles so funktioniert wie es sollte außer eine kleine Sache über ImageViews mit ScaleType.MATRIX.
Im Grunde, was ich in meiner Anwendung ist eine Bildansicht als hintergrund und dementsprechend eine ViewPager Rückrufe bewege ich mich der fokussierte Teil des Bildes Aktualisierung der Matrix ich gab die Bildansicht mit setImageMatix( Matrix, matrix ).
das problem scheint zu sein, dass kann ich nicht aktualisieren Sie die matrix mehr, ich habe nur zu instanziieren, eine neue eine eine an den Bildansicht.
habe ich es geschafft, das zu umgehen, instanziieren jedes mal wenn ein neuer Matrix aber es scheint schrecklich Speicher teuer im Vergleich zu der alten version.
ist das ein BUG?
gibt es eine Möglichkeit, Aktualisierungs-die Matrix? ( ich habe übrigens bereits versucht, invalidate() Bildansicht ecc. )
NICHT ARBEITEN
private void updateMatrix( final int page, final double offset ) {
double pagePosition = page + offset;
Matrix matrix = imageView.getImageMatrix();
matrix.setScale( scale, scale );
matrix.postTranslate( - (float) ( pagePosition * pageWidth ) , 0 );
imageView.setImageMatrix( matrix );
imageView.invalidate();
}
ARBEITEN
private void updateMatrix( final int page, final double offset ) {
double pagePosition = page + offset;
Matrix matrix = new Matrix();
matrix.setScale( scale, scale );
matrix.postTranslate( - (float) ( pagePosition * pageWidth ) , 0 );
imageView.setImageMatrix( matrix );
imageView.invalidate();
}
EDIT:
im ersten Fall ist das Bild erscheint in der linken oberen Ecke der Bildansicht ohne skalieren oder übersetzen angewendet, wie wenn die matrix zurück, um Identität.
- Was passiert im ersten Fall? Was sind die Symptome?
- im ersten Fall ist das Bild erscheint in der linken oberen Ecke der Bildansicht ohne skalieren oder übersetzen angewendet. Als wenn die matrix zurückgesetzt wurde.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur bewahren Sie Ihre
Matrix
als Feld-statt abrufen vonImageView
und du wirst glücklich sein 🙂ImageView
stark stützt sich auf IhreMatrix
ist, das ist sogar gespeichert, zwischen der Konfiguration vornehmen. Zweitens, Sie versuchen zu verhindern, dass solche Situationen, wenn mehrereImageView
s-Aktien EinzelzimmerMatrix
Gibt es möglicherweise ein Fehler mit der Bildansicht Skalierung beginnend mit 4.3. Siehe meine Frage und Antwort über diesen Fehler.