ImageDecoder Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Eine Klasse zum Konvertieren codierter Bilder (z PNG
. B. , JPEG
, , WEBP
, GIF
oder 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
- Attribute
- Implementiert
Hinweise
Eine Klasse zum Konvertieren codierter Bilder (z PNG
. B. , JPEG
, , WEBP
, GIF
oder 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 Uri
Aufruf #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 Source
OnHeaderDecodedListener 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) -> {
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 Drawable
befindet) unveränderlich (d. h. Bitmap#isMutable Bitmap.isMutable()
Rückgabe false
), und sie hat in der Regel Config
Bitmap.Config#HARDWARE
. Obwohl diese Eigenschaften mit #setMutableRequired setMutableRequired(true)
(nur kompatibel mit #decodeBitmap(Source)
und #decodeBitmap(Source, OnHeaderDecodedListener)
) geändert werden können, ist #setAllocator
es 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) -> {
decoder.setPostProcessor((canvas) -> {
// 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) -> {
decoder.setOnPartialImageListener((DecodeException e) -> {
// 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 |
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 |
MemoryPolicyLowRam |
Veraltet.
Sparen Sie Speicher, wenn möglich, indem Sie einen Dichter |
Eigenschaften
Class |
Gibt die Laufzeitklasse dieses Werts |
Crop |
Gibt das Zuschneiderechteck zurück, falls festgelegt. -or- Crop the output to |
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 |
JniPeerMembers |
Eine Klasse zum Konvertieren codierter Bilder (z |
MemorySizePolicy |
Rufen Sie die Speicherrichtlinie für die decodierte |
MutableRequired |
Gibt zurück, ob die decodierte |
OnPartialImageListener |
Legen Sie das |
PeerReference |
Eine Klasse zum Konvertieren codierter Bilder (z |
PostProcessor |
Gibt den |
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 |
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 |
CreateSource(Byte[], Int32, Int32) |
Erstellen Sie ein neues |
CreateSource(Byte[]) |
Erstellen Sie ein neues |
CreateSource(ByteBuffer) |
Erstellen Sie ein neues |
CreateSource(ContentResolver, Uri) |
Erstellen Sie ein neues |
CreateSource(File) |
Erstellen Sie ein neues |
CreateSource(ICallable) |
Erstellen Sie ein neues |
CreateSource(Resources, Int32) |
Erstellen Sie ein neues |
DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Siehe |
DecodeBitmap(ImageDecoder+Source) |
Siehe |
DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Siehe |
DecodeDrawable(ImageDecoder+Source) |
Siehe |
Dispose() |
Eine Klasse zum Konvertieren codierter Bilder (z |
Dispose(Boolean) |
Eine Klasse zum Konvertieren codierter Bilder (z |
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 |
SetTargetSampleSize(Int32) |
Legen Sie die Zielgröße mit einer SampleSize fest. |
SetTargetSize(Int32, Int32) |
Geben Sie die Größe der Ausgabe |
ToArray<T>() |
Eine Klasse zum Konvertieren codierter Bilder (z |
ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
UnregisterFromRuntime() |
Eine Klasse zum Konvertieren codierter Bilder (z |
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
PartialImage |
Eine Klasse zum Konvertieren codierter Bilder (z |
Explizite Schnittstellenimplementierungen
IJavaPeerable.Disposed() |
Eine Klasse zum Konvertieren codierter Bilder (z |
IJavaPeerable.DisposeUnlessReferenced() |
Eine Klasse zum Konvertieren codierter Bilder (z |
IJavaPeerable.Finalized() |
Eine Klasse zum Konvertieren codierter Bilder (z |
IJavaPeerable.JniManagedPeerState |
Eine Klasse zum Konvertieren codierter Bilder (z |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Eine Klasse zum Konvertieren codierter Bilder (z |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Eine Klasse zum Konvertieren codierter Bilder (z |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Eine Klasse zum Konvertieren codierter Bilder (z |
Erweiterungsmethoden
JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
JavaCast<TResult>(IJavaObject) |
Eine Klasse zum Konvertieren codierter Bilder (z |
GetJniTypeName(IJavaPeerable) |
Eine Klasse zum Konvertieren codierter Bilder (z |