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, 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à
- 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) -> {
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) -> {
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[], Int32, Int32) |
Creare un nuovo |
| CreateSource(Byte[]) |
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, ImageDecoder+IOnHeaderDecodedListener) |
Vedere |
| DecodeBitmap(ImageDecoder+Source) |
Vedere |
| DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Vedere |
| DecodeDrawable(ImageDecoder+Source) |
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, 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 |
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 |