Condividi tramite


ImageDecoder Classe

Definizione

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

[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
Ereditarietà
ImageDecoder
Attributi
Implementazioni

Commenti

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

Per usarlo, creare prima di tutto un Source Source oggetto usando uno degli createSource overload. Ad esempio, per decodificare da un Urioggetto , chiamare #createSource(ContentResolver, Uri) e passare il risultato a #decodeDrawable(Source) o #decodeBitmap(Source):

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

Per modificare le impostazioni predefinite, passare a Source Source e OnHeaderDecodedListener OnHeaderDecodedListener a #decodeDrawable(Source, OnHeaderDecodedListener) o #decodeBitmap(Source, OnHeaderDecodedListener). Ad esempio, per creare un'immagine campionata con metà della larghezza e dell'altezza dell'immagine originale, chiamare #setTargetSampleSize setTargetSampleSize(2) all'interno OnHeaderDecodedListener#onHeaderDecoded onHeaderDecodeddi :

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

ImageInfo ImageInfo Contiene informazioni sull'immagine codificata, ad esempio la larghezza e l'altezza, e l'oggetto Source Source può essere usato per trovare la corrispondenza con un particolare Source Source se viene usato un singolo OnHeaderDecodedListener OnHeaderDecodedListener oggetto con più Source Source oggetti.

Può OnHeaderDecodedListener OnHeaderDecodedListener anche essere implementato come espressione lambda:

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

Se l'immagine codificata è animata GIF o WEBP, #decodeDrawable decodeDrawable restituirà un oggetto AnimatedImageDrawable. Per avviare l'animazione, chiamare AnimatedImageDrawable#start AnimatedImageDrawable.start():

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

Per impostazione predefinita, un Bitmap oggetto creato da ImageDecoder (incluso quello che si trova all'interno di ) Drawablesarà non modificabile (ad esempio Bitmap#isMutable Bitmap.isMutable() restituisce false) e in genere avrà ConfigBitmap.Config#HARDWARE. Anche se queste proprietà possono essere modificate con #setMutableRequired setMutableRequired(true) (che è compatibile solo con #decodeBitmap(Source) e #decodeBitmap(Source, OnHeaderDecodedListener)) e #setAllocator, è anche possibile applicare effetti personalizzati indipendentemente dalla mutabilità dell'oggetto restituito finale passando un PostProcessor oggetto a #setPostProcessor setPostProcessor. Un PostProcessor può anche essere un'espressione lambda:

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;
                 });
             });

Se l'immagine codificata è incompleta o contiene un errore o se Exception si verifica durante la decodifica, verrà generata un'eccezione DecodeException DecodeException . In alcuni casi, può ImageDecoder essere stata decodificata parte dell'immagine. Per visualizzare l'immagine parziale, è necessario passare un oggetto OnPartialImageListener OnPartialImageListener a #setOnPartialImageListener setOnPartialImageListener. Ad esempio:

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;
                 });
             });

Documentazione java per android.graphics.ImageDecoder.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Campi

AllocatorDefault
Obsoleti.

Usa l'allocazione predefinita per la memoria pixel.

AllocatorHardware
Obsoleti.

Richiedere un oggetto Bitmap.Config#HARDWAREBitmap.

AllocatorSharedMemory
Obsoleti.

Usare la memoria condivisa per la memoria pixel.

AllocatorSoftware
Obsoleti.

Usare un'allocazione software per la memoria pixel.

MemoryPolicyDefault
Obsoleti.

Usare la più naturale Bitmap.Config per l'oggetto interno Bitmap.

MemoryPolicyLowRam
Obsoleti.

Se possibile, risparmiare memoria usando una densità Bitmap.Config a un costo di qualità dell'immagine.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Crop

Restituisce il rettangolo di ritaglio, se impostato. -oppure- Ritagliare l'output su subset dell'immagine (possibilmente) ridimensionata.

DecodeAsAlphaMaskEnabled

Restituisce un valore che indica se considerare l'input a canale singolo come alfa. -oppure- Specificare se considerare l'output come maschera alfa.

Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
JniPeerMembers

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

MemorySizePolicy

Recuperare i criteri di memoria per l'oggetto decodificato Bitmap. -oppure- Specificare i criteri di memoria per l'oggetto decodificato Bitmap.

MutableRequired

Restituisce se il decodificato Bitmap sarà modificabile. -oppure- Specificare se deve Bitmap essere modificabile.

OnPartialImageListener

Imposta (sostituisci) l'oggetto OnPartialImageListener su questo oggetto.

PeerReference

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
PostProcessor

Restituisce l'oggetto PostProcessor attualmente impostato. -oppure- Modificare l'immagine dopo la decodifica e il ridimensionamento.

ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

(Ereditato da Object)
ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

(Ereditato da Object)
UnpremultipliedRequired

Restituisce un valore che indica se l'oggetto Bitmap avrà pixel non premoltiplicati. -oppure- Specificare se l'oggetto Bitmap deve avere pixel non premoltiplicati.

Metodi

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Close()

Chiude questa risorsa, rinunciando a tutte le risorse sottostanti.

CreateSource(AssetManager, String)

Creare un nuovo Source oggetto da un oggetto android.net.Uri.

CreateSource(Byte[], Int32, Int32)

Creare un nuovo Source oggetto da un oggetto android.net.Uri.

CreateSource(Byte[])

Creare un nuovo Source oggetto da un oggetto android.net.Uri.

CreateSource(ByteBuffer)

Creare un nuovo Source oggetto da un oggetto android.net.Uri.

CreateSource(ContentResolver, Uri)

Creare un nuovo Source oggetto da un oggetto android.net.Uri.

CreateSource(File)

Creare un nuovo Source oggetto da un oggetto android.net.Uri.

CreateSource(ICallable)

Creare un nuovo Source oggetto da un oggetto android.net.Uri.

CreateSource(Resources, Int32)

Creare un nuovo Source oggetto da un oggetto android.net.Uri.

DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Vedere #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeBitmap(ImageDecoder+Source)

Vedere #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Vedere #decodeDrawable(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source)

Vedere #decodeDrawable(Source, OnHeaderDecodedListener).

Dispose()

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
Dispose(Boolean)

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
IsMimeTypeSupported(String)

Restituisce se il tipo MIME specificato è un formato di file supportato che può essere decodificato da questa classe.

JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
SetTargetColorSpace(ColorSpace)

Specificare l'oggetto desiderato ColorSpace per l'output.

SetTargetSampleSize(Int32)

Impostare le dimensioni di destinazione con sampleSize.

SetTargetSize(Int32, Int32)

Specificare le dimensioni dell'output Drawable o Bitmap.

ToArray<T>()

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Eventi

PartialImage

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
IJavaPeerable.Finalized()

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

GetJniTypeName(IJavaPeerable)

Classe per la conversione di immagini codificate (ad esempio PNG, JPEG, WEBP, GIFo HEIF) in Drawable oggetti o Bitmap .

Si applica a