Zitterndes Bild in ImageView

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zitterndes Bild in ImageView

    Hallo Profis

    In meiner App kann der Benutzer die Fenstergrösse einer ImageView auf dem Bildschirm per Drag einer der vier Ränder selber verstellen. Das in der View gezeigte Bild soll dabei an Ort bleiben und nur an der entsprechenden Kante zu- oder abgedeckt werden. Beispiel: Die View misst original 100x100 Pixel. Der Benutzer zieht den linken Rand 10 Pixel nach innen. Das ursprünglich angezeigte Bild muss also ebenfalls am linken Rand um 10 Pixel abgeschnitten werden und kann jetzt wieder in der 90x100 View platzfüllend dargestellt werden. Meine App macht in diesem Beispiel direkt hintereinander folgendes:

    1. Platzieren der auf 90x100 verkleinerten View mit einem 10px grösseren marginLeft.
    2. Laden des neuen zugeschnittenen 90x100px-Bildes in die ImageView.

    Leider kommt mir Android dabei in die Quere, denn es zeichnet sofort nach Schritt 1 das alte 100x100-Bild nochmals (bei scaleTyp CENTER auf 90x90 verkleinert, damit es in der durch Schritt 1 verkleinerten View Platz hat, um dann im Schritt 2 wieder auf 90x100 aufgeblasen zu werden; bei scaleTyp MATRIX um 10 Pixel nach rechts verschoben, um dann nach dem Schritt 2 wieder um 10 Pixel nach links zu springen; usw.). Dadurch zittert das Bild in der ImageView ganz gehörig (vor allem, wenn der Bildrand kontinuierlich verschoben und obiger Prozess entsprechend wiederholt wird).

    Ich suche Ideen, wie ich dieses örtliche Zittern (zu unterscheiden von einem zeitlichen Flackern) verhindern kann. In .NET kann man z.B. als Workaround den Bildschirm-Update für die Dauer der Schritte 1 und 2 disabeln - ist das auch in Android möglich? Oder hilft ein eigenes ImageView, bei der OnDraw in dieser Situation unterdrückt wird? Oder gibts bessere/kürzere Lösungen?

    Danke für jeden Tipp!

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von Desperate ()