Bitmap von Android ImageView im Fall von ScaleType Bitmap obere und untere RectF-Koordinaten, Kotlin

Bitmap von Android ImageView im Fall von ScaleType, obere und untere RectF-Koordinaten der Bitmap, Kotlin

 

 

Normalerweise skaliert Android nach dem Festlegen von ScaleType in ImageView das Originalbild und platziert es in ImageView, zum Beispiel:

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:src="@mipmap/p2" />

 

Angezeigte Ergebnisse:

c5363682697c47c7a63c1238f55a59ea.png

Die Höhe von ImageView wird hier speziell eingestellt:

android:layout_height="match_parent"

Es füllt die Höhe von ImageView aus, aber die Breite der in ImageView angezeigten Bitmap füllt die Bildschirmbreite aus, aber die Höhe von Bitmap unterscheidet sich von der von ImageView und oben und unten gibt es Lücken. Denn der Skalierungsmodus ist:

        android:scaleType="fitCenter"

Wenn Sie zu diesem Zeitpunkt den oberen Wert oder einen anderen unteren Wert der Bitmap erhalten möchten, die über „scaleType“ in der ImageView skaliert wurde, gehen Sie wie folgt vor:

    private fun getImageBounds(imageView: ImageView): RectF {
        val bounds = RectF()

        val drawable = imageView.drawable
        if (drawable != null) {
            imageView.imageMatrix.mapRect(bounds, RectF(drawable.bounds))
        }

        return bounds
    }

Der obere Rand des zurückgegebenen RectF ist der Abstand zwischen dem oberen Rand der skalierten Bitmap im ImageView und dem oberen Rand des ImageView.

 

Da die Höhe der ImageView auf „match_parent“ und der ScaleType „fitCenter“ festgelegt ist, besteht eine Lücke zwischen dem oberen Rand der Bitmap im Inneren und dem oberen Rand der ImageView. Wenn Sie diese Lücke schließen möchten, ist das ganz einfach: Ändern Sie einfach die XML direkt und ändern Sie die Höhe der ImageView von match_parent in wrap_content:

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:src="@mipmap/p2" />

Zu diesem Zeitpunkt bewegt sich die Bitmap in der ImageView nach oben und stimmt mit der Oberseite der ImageView überein.

90d18bc547894ef4b10b946e45a39a6e.png

Ein solch einfacher Prozess kann in einigen Szenarien die Berechnung der Breiten- und Höhenkoordinatenpositionen von ImageView und Bitmap in ImageView vereinfachen.

 

 

 

 

Android vergrößert die Bitmap, deren Breite und Höhe kleiner als der angegebene Wert sind, auf den angegebenen Wert. Der Kotlin-CSDN-Blogartikel wurde 392 Mal angesehen und gelesen, 8 Mal mit „Gefällt mir“ markiert und 11 Mal gesammelt. Der Artikel wurde 5,3.000 Mal angesehen und gelesen. „Konvertieren Sie Miniaturansichten großer Android-Bilder und schneiden Sie die ursprünglichen großen Bilder entsprechend der angegebenen Breite und Höhe in Miniaturansichten zu.“ Beim Laden von Bildressourcen in Androids ImageView ist dies aufgrund der Leistungsanforderungen und des Speicheraufwands manchmal der Fall Dies ist erforderlich, um ein zu konvertieren. Das übergroße Originalbild wird entsprechend einem bestimmten Verhältnis in kleinere Miniaturansichten skaliert, oder das übergroße Originalbild muss in ein kleineres Bild mit einer bestimmten Breite und Höhe zugeschnitten werden. Für diese Art von Entwicklungsanforderungen können Sie das verwenden Tools, die vom Android SDK selbst bereitgestellt werden. Klasse: ThumbnailUtils Complete. Gehen Sie davon aus, dass die Strecke auf SIZE=2048 vergrößert wird. https://blog.csdn.net/zhangphil/article/details/134737075

Android verwendet ScaleType zum Zuschneiden und Skalieren von Bildern, um sie an unterschiedliche ImageView-Größen auf verschiedenen Bildschirmen anzupassen – CSDN-Blogartikel wurde 6,1.000 Mal gelesen. Android verwendet ScaleType, um Bilder zuzuschneiden und zu skalieren, um sie an unterschiedliche ImageView-Größen auf verschiedenen Bildschirmen anzupassen. Suchen Sie zunächst ein unregelmäßig großes Bild mit einer Größe von 1024 Pixeln (Breite) und 600 Pixeln. Beobachten Sie den Zuschneide- und Skalierungseffekt von Android auf das Originalbild unter verschiedenen ScaleType-Konfigurationen. Der Code befindet sich auf der linken Seite und die Skalierungs- und Zuschneideeffekte befinden sich auf der rechten Seite. (1) android:scaleType="fitXY" kann... https://blog.csdn.net/zhangphil/article/details/80858726

 

Supongo que te gusta

Origin blog.csdn.net/zhangphil/article/details/135172502
Recomendado
Clasificación