Freigeben über


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.Interop.IJavaPeerable, 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 ist der ImageDecoder decodierte Teil des Bilds. Damit das Teilbild angezeigt werden kann, muss ein OnPartialImageListener OnPartialImageListener Element übergeben werden.#setOnPartialImageListener setOnPartialImageListener Zum 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 vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Felder

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

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

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

(Geerbt von Object)
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

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

(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

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.

CreateSource(AssetManager, String)

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

CreateSource(Byte[])

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

CreateSource(Byte[], Int32, Int32)

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

CreateSource(ByteBuffer)

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

CreateSource(ContentResolver, Uri)

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

CreateSource(File)

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

CreateSource(ICallable)

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

CreateSource(Resources, Int32)

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

DecodeBitmap(ImageDecoder+Source)

Siehe #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Siehe #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source)

Siehe #decodeDrawable(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Siehe #decodeDrawable(Source, OnHeaderDecodedListener).

Dispose()

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

(Geerbt von Object)
Dispose(Boolean)

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

(Geerbt von Object)
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)
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>()

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

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

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

(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)

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, 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)

Ereignisse

PartialImage

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

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

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

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

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

(Geerbt von Object)
IJavaPeerable.Finalized()

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

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

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

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

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

(Geerbt von Object)

Erweiterungsmethoden

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.

GetJniTypeName(IJavaPeerable)

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

Gilt für: