ImageDecoder Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Classe per la conversione di immagini codificate (ad esempio PNG
, JPEG
, WEBP
, GIF
o 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à
- Attributi
- Implementazioni
Commenti
Classe per la conversione di immagini codificate (ad esempio PNG
, JPEG
, WEBP
, GIF
o 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 Uri
oggetto , 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 onHeaderDecoded
di :
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) -> {
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 ) Drawable
sarà non modificabile (ad esempio Bitmap#isMutable Bitmap.isMutable()
restituisce false
) e in genere avrà Config
Bitmap.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) -> {
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;
});
});
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) -> {
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;
});
});
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 |
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 |
MemoryPolicyLowRam |
Obsoleti.
Se possibile, risparmiare memoria usando una densità |
Proprietà
Class |
Restituisce la classe di runtime di questo |
Crop |
Restituisce il rettangolo di ritaglio, se impostato. -oppure- Ritagliare l'output su |
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 |
JniPeerMembers |
Classe per la conversione di immagini codificate (ad esempio |
MemorySizePolicy |
Recuperare i criteri di memoria per l'oggetto decodificato |
MutableRequired |
Restituisce se il decodificato |
OnPartialImageListener |
Imposta (sostituisci) l'oggetto |
PeerReference |
Classe per la conversione di immagini codificate (ad esempio |
PostProcessor |
Restituisce l'oggetto |
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 |
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 |
CreateSource(Byte[]) |
Creare un nuovo |
CreateSource(Byte[], Int32, Int32) |
Creare un nuovo |
CreateSource(ByteBuffer) |
Creare un nuovo |
CreateSource(ContentResolver, Uri) |
Creare un nuovo |
CreateSource(File) |
Creare un nuovo |
CreateSource(ICallable) |
Creare un nuovo |
CreateSource(Resources, Int32) |
Creare un nuovo |
DecodeBitmap(ImageDecoder+Source) |
Vedere |
DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Vedere |
DecodeDrawable(ImageDecoder+Source) |
Vedere |
DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Vedere |
Dispose() |
Classe per la conversione di immagini codificate (ad esempio |
Dispose(Boolean) |
Classe per la conversione di immagini codificate (ad esempio |
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 |
SetTargetSampleSize(Int32) |
Impostare le dimensioni di destinazione con sampleSize. |
SetTargetSize(Int32, Int32) |
Specificare le dimensioni dell'output |
ToArray<T>() |
Classe per la conversione di immagini codificate (ad esempio |
ToString() |
Restituisce una rappresentazione di stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
Classe per la conversione di immagini codificate (ad esempio |
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) |
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, 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) |
Eventi
PartialImage |
Classe per la conversione di immagini codificate (ad esempio |
Implementazioni dell'interfaccia esplicita
IJavaPeerable.Disposed() |
Classe per la conversione di immagini codificate (ad esempio |
IJavaPeerable.DisposeUnlessReferenced() |
Classe per la conversione di immagini codificate (ad esempio |
IJavaPeerable.Finalized() |
Classe per la conversione di immagini codificate (ad esempio |
IJavaPeerable.JniManagedPeerState |
Classe per la conversione di immagini codificate (ad esempio |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Classe per la conversione di immagini codificate (ad esempio |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Classe per la conversione di immagini codificate (ad esempio |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Classe per la conversione di immagini codificate (ad esempio |
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 |
GetJniTypeName(IJavaPeerable) |
Classe per la conversione di immagini codificate (ad esempio |