Sprache

ImageDecoder Klasse

Definition

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

[Android.Runtime.Register("android/graphics/ImageDecoder", ApiSince=28, DoNotGenerateAcw=true)]
public sealed class ImageDecoder : Java.Lang.Object, IDisposable, Java.Lang.IAutoCloseable
[<Android.Runtime.Register("android/graphics/ImageDecoder", ApiSince=28, DoNotGenerateAcw=true)>]
type ImageDecoder = class
    inherit Object
    interface IAutoCloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Vererbung
ImageDecoder
Attribute
Implementiert

Hinweise

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

Erstellen Sie zunächst eine Source Source der createSource Überladungen, um sie zu verwenden. Um z. B. von einem UriAufruf #createSource(ContentResolver, Uri) zu decodieren und das Ergebnis an #decodeDrawable(Source) oder #decodeBitmap(Source):

File file = new File(...);
             ImageDecoder.Source source = ImageDecoder.createSource(file);
             Drawable drawable = ImageDecoder.decodeDrawable(source);

Um die Standardeinstellungen zu ändern, übergeben Sie die und eine Source SourceOnHeaderDecodedListener OnHeaderDecodedListener an #decodeDrawable(Source, OnHeaderDecodedListener) oder.#decodeBitmap(Source, OnHeaderDecodedListener) Wenn Sie z. B. ein beispieliertes Bild mit halber Breite und Höhe des ursprünglichen Bilds erstellen möchten, rufen Sie #setTargetSampleSize setTargetSampleSize(2) folgendes auf OnHeaderDecodedListener#onHeaderDecoded onHeaderDecoded:

OnHeaderDecodedListener listener = new OnHeaderDecodedListener() {
                 public void onHeaderDecoded(ImageDecoder decoder, ImageInfo info, Source source) {
                     decoder.setTargetSampleSize(2);
                 }
             };
             Drawable drawable = ImageDecoder.decodeDrawable(source, listener);

Das ImageInfo ImageInfo enthält Informationen zum codierten Bild, z. B. deren Breite und Höhe, und die Source Source kann verwendet werden, um mit einem bestimmten Source Source Wert abzugleichen, wenn ein einzelner OnHeaderDecodedListener OnHeaderDecodedListener mit mehreren Source Source Objekten verwendet wird.

Dies OnHeaderDecodedListener OnHeaderDecodedListener kann auch als Lambda-Funktion implementiert werden:

Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -&gt; {
                 decoder.setTargetSampleSize(2);
             });

Wenn es sich bei dem codierten Bild um ein animiertes GIF Bild handelt, wird WEBP#decodeDrawable decodeDrawable ein AnimatedImageDrawable. Rufen Sie zum Starten der Animation Folgendes auf AnimatedImageDrawable#start AnimatedImageDrawable.start():

Drawable drawable = ImageDecoder.decodeDrawable(source);
             if (drawable instanceof AnimatedImageDrawable) {
                 ((AnimatedImageDrawable) drawable).start();
             }

Standardmäßig ist eine Bitmap Erstellte von ImageDecoder (einschließlich einer, die sich in einer Drawablebefindet) unveränderlich (d. h. Bitmap#isMutable Bitmap.isMutable() Rückgabe false), und sie hat in der Regel ConfigBitmap.Config#HARDWARE. Obwohl diese Eigenschaften mit #setMutableRequired setMutableRequired(true) (nur kompatibel mit #decodeBitmap(Source) und #decodeBitmap(Source, OnHeaderDecodedListener)) geändert werden können, ist #setAllocatores auch möglich, benutzerdefinierte Effekte anzuwenden, unabhängig von der Änderbarkeit des endgültigen zurückgegebenen Objekts durch Übergeben einer PostProcessor an #setPostProcessor setPostProcessor. A PostProcessor kann auch eine Lambda-Funktion sein:

Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -&gt; {
                 decoder.setPostProcessor((canvas) -&gt; {
                         // This will create rounded corners.
                         Path path = new Path();
                         path.setFillType(Path.FillType.INVERSE_EVEN_ODD);
                         int width = canvas.getWidth();
                         int height = canvas.getHeight();
                         path.addRoundRect(0, 0, width, height, 20, 20, Path.Direction.CW);
                         Paint paint = new Paint();
                         paint.setAntiAlias(true);
                         paint.setColor(Color.TRANSPARENT);
                         paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
                         canvas.drawPath(path, paint);
                         return PixelFormat.TRANSLUCENT;
                 });
             });

Wenn das codierte Bild unvollständig ist oder einen Fehler enthält oder während der Exception Decodierung auftritt, wird ein DecodeException DecodeException Fehler ausgelöst. In einigen Fällen hat der ImageDecoder decodierte Teil des Bilds. Damit das Teilbild angezeigt werden kann, muss ein OnPartialImageListener OnPartialImageListener Element übergeben werden.#setOnPartialImageListener setOnPartialImageListener Beispiel:

Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -&gt; {
                 decoder.setOnPartialImageListener((DecodeException e) -&gt; {
                         // Returning true indicates to create a Drawable or Bitmap even
                         // if the whole image could not be decoded. Any remaining lines
                         // will be blank.
                         return true;
                 });
             });

Java Dokumentation für android.graphics.ImageDecoder.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Felder

Name Beschreibung
AllocatorDefault
Veraltet.

Verwenden Sie die Standardzuordnung für den Pixelspeicher.

AllocatorHardware
Veraltet.

Erfordert ein Bitmap.Config#HARDWAREBitmap.

AllocatorSharedMemory
Veraltet.

Verwenden Sie gemeinsam genutzten Speicher für den Pixelspeicher.

AllocatorSoftware
Veraltet.

Verwenden Sie eine Softwarezuordnung für den Pixelspeicher.

MemoryPolicyDefault
Veraltet.

Verwenden Sie die natürlichste Bitmap.Config für die interne Bitmap.

MemoryPolicyLowRam
Veraltet.

Sparen Sie Speicher, wenn möglich, indem Sie einen Dichter Bitmap.Config zu Kosten für eine gewisse Bildqualität verwenden.

Eigenschaften

Name Beschreibung
Allocator

Gibt den Allocator für den Pixelspeicher zurück. -oder- Wählen Sie die Sicherung für den Pixelspeicher aus.

Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
Crop

Gibt das Zuschneiderechteck zurück, falls festgelegt. -or- Crop the output to subset the (möglicherweise) scaled image.

DecodeAsAlphaMaskEnabled

Gibt zurück, ob die Einkanaleingabe als Alpha behandelt werden soll. -oder- Geben Sie an, ob die Ausgabe potenziell als Alphamaske behandelt werden soll.

Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
JniIdentityHashCode

Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist.

(Geerbt von Object)
JniManagedPeerState

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

(Geerbt von JavaObject)
JniPeerMembers

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

MemorySizePolicy

Rufen Sie die Speicherrichtlinie für die decodierte Bitmapab. - oder- Geben Sie die Speicherrichtlinie für die decodierte Bitmap.

MutableRequired

Gibt zurück, ob die decodierte Bitmap Datei stummgeschaltet werden kann. -oder- Geben Sie an, ob die Bitmap Stummschaltung möglich sein soll.

OnPartialImageListener

Legen Sie das OnPartialImageListener Objekt für dieses Objekt fest (ersetzen).

PeerReference

Ruft den JNI-Objektverweis für diesen Java Peer ab.

(Geerbt von Object)
PostProcessor

Gibt den PostProcessor aktuell festgelegten Wert zurück. -oder- Ändern Sie das Bild nach der Decodierung und Skalierung.

ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

(Geerbt von Object)
ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

(Geerbt von Object)
UnpremultipliedRequired

Gibt zurück, ob die Bitmap Nichtmultiplizierten Pixel aufweisen. -oder- Geben Sie an, ob die Bitmap nicht mehr multiplizierten Pixel enthalten sollen.

Methoden

Name Beschreibung
Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Close()

Schließt diese Ressource, wobei alle zugrunde liegenden Ressourcen entfernt werden.

Construct(JniObjectReference, JniObjectReferenceOptions)

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

(Geerbt von JavaObject)
CreateSource(AssetManager, String)

Erstellen Sie eine neue Source Aus einer Datei im Ressourcenverzeichnis.

CreateSource(Byte[], Int32, Int32)

Erstellen Sie eine neue Source aus einem Bytearraybereich.

CreateSource(Byte[])

Erstellen Sie ein neues Source aus einem Bytearray.

CreateSource(ByteBuffer)

Erstellen Sie ein neues Source aus einem ByteBuffer.

CreateSource(ContentResolver, Uri)

Erstellen Sie ein neues Source aus einem android.net.Uri.

CreateSource(File)

Erstellen Sie eine neue Source Aus einer Datei.

CreateSource(ICallable)

Erstellen Sie ein neues Source aus einem aufrufbaren Objekt, das eine AssetFileDescriptor.

CreateSource(Resources, Int32)

Erstellen Sie eine neue Source aus einer Ressource.

DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Siehe #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeBitmap(ImageDecoder+Source)

Siehe #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Siehe #decodeDrawable(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source)

Siehe #decodeDrawable(Source, OnHeaderDecodedListener).

Dispose()

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
Dispose(Boolean)

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
DisposeUnlessReferenced()

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

(Geerbt von JavaObject)
Equals(Object)

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

(Geerbt von JavaObject)
Equals(Object)

Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist.

(Geerbt von Object)
GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
IsMimeTypeSupported(String)

Gibt zurück, wenn der angegebene MIME-Typ ein unterstütztes Dateiformat ist, das von dieser Klasse decodiert werden kann.

JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind.

(Geerbt von Object)
Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

(Geerbt von JavaObject)
SetTargetColorSpace(ColorSpace)

Geben Sie den gewünschten ColorSpace Für die Ausgabe an.

SetTargetSampleSize(Int32)

Legen Sie die Zielgröße mit einer SampleSize fest.

SetTargetSize(Int32, Int32)

Geben Sie die Größe der Ausgabe Drawable oder Bitmap.

ToArray<T>()

Erstellt ein verwaltetes Array aus diesem Java Arraywrapper.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><>

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Ereignisse

Name Beschreibung
PartialImage

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

Explizite Schnittstellenimplementierungen

Name Beschreibung
IJavaPeerable.Disposed()

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

(Geerbt von JavaObject)
IJavaPeerable.Finalized()

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

(Geerbt von JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

(Geerbt von JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

(Geerbt von JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

(Geerbt von JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

(Geerbt von JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Eine Klasse zum Konvertieren codierter Bilder (z PNG. B. , JPEG, , WEBP, GIFoder HEIF) in Drawable oder Bitmap Objekte.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: