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. Per 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;
});
});
per android.graphics.ImageDecoder.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.
Campi
| Nome | Descrizione |
|---|---|
| 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à
| Nome | Descrizione |
|---|---|
| Allocator |
Restituisce l'allocatore per la memoria in pixel. - oppure - Scegliere il backup per la memoria pixel. |
| 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 |
Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| 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 |
Ottiene il riferimento all'oggetto JNI per questo peer Java. (Ereditato da Object) |
| 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
| Nome | Descrizione |
|---|---|
| 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) |
Vedete |
| DecodeBitmap(ImageDecoder+Source) |
Vedete |
| DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Vedete |
| DecodeDrawable(ImageDecoder+Source) |
Vedete |
| Dispose() |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| Dispose(Boolean) |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
| GetHashCode() |
Restituisce un valore di 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>() |
Crea una matrice gestita da questo wrapper di matrice Java. (Ereditato da Object) |
| ToString() |
Restituisce una rappresentazione di stringa dell'oggetto . (Ereditato da Object) |
| UnregisterFromRuntime() |
Annulla la registrazione di questo Java peer dal runtime di interoperabilità. (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
| Nome | Descrizione |
|---|---|
| PartialImage |
Classe per la conversione di immagini codificate (ad esempio |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IJavaPeerable.Disposed() |
Notifica al runtime di interoperabilità che il peer gestito è stato eliminato. (Ereditato da Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
Rilascia questo Java peer a meno che non venga conservato da un altro riferimento gestito. (Ereditato da Object) |
| IJavaPeerable.Finalized() |
Notifica al runtime di interoperabilità che il peer gestito è stato finalizzato. (Ereditato da Object) |
| IJavaPeerable.JniManagedPeerState |
Ottiene lo stato che descrive la relazione tra questo peer gestito e il relativo riferimento JNI. (Ereditato da Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Imposta il codice hash dell'identità di interoperabilità per questo Java peer. (Ereditato da Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Imposta lo stato peer gestito e JNI per questo peer Java. (Ereditato da Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Imposta il riferimento all'oggetto JNI usato da questo peer gestito. (Ereditato da Object) |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ottiene il nome JNI del tipo dell'istanza |
| JavaAs<TResult>(IJavaPeerable) |
Provare a digitare |
| 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 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Provare a digitare |