Compartir a través de


ImageDecoder Clase

Definición

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos 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
Herencia
ImageDecoder
Atributos
Implementaciones

Comentarios

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

Para usarlo, cree primero mediante Source Source una de las createSource sobrecargas. Por ejemplo, para descodificar de una Urillamada #createSource(ContentResolver, Uri) a y pasar el resultado a #decodeDrawable(Source) o #decodeBitmap(Source):

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

Para cambiar la configuración predeterminada, pase y Source SourceOnHeaderDecodedListener OnHeaderDecodedListener a #decodeDrawable(Source, OnHeaderDecodedListener) o #decodeBitmap(Source, OnHeaderDecodedListener). Por ejemplo, para crear una imagen muestreada con la mitad del ancho y alto de la imagen original, llame a #setTargetSampleSize setTargetSampleSize(2) dentro OnHeaderDecodedListener#onHeaderDecoded onHeaderDecodedde :

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 información sobre la imagen codificada, como su ancho y alto, y Source Source se puede usar para que coincida con un determinado Source Source si se usa un solo OnHeaderDecodedListener OnHeaderDecodedListener con varios Source Source objetos.

OnHeaderDecodedListener OnHeaderDecodedListener También se puede implementar como una expresión lambda:

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

Si la imagen codificada es una animación GIF o WEBP, #decodeDrawable decodeDrawable devolverá un AnimatedImageDrawable. Para iniciar su animación, llame a AnimatedImageDrawable#start AnimatedImageDrawable.start():

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

De forma predeterminada, un creado por (incluido uno que está dentro de ) Drawableserá inmutable (es decir, Bitmap#isMutable Bitmap.isMutable() devuelve false), y normalmente tendrá ConfigBitmap.Config#HARDWARE.ImageDecoderBitmap Aunque estas propiedades se pueden cambiar con #setMutableRequired setMutableRequired(true) (que solo es compatible con #decodeBitmap(Source) y #decodeBitmap(Source, OnHeaderDecodedListener)) y #setAllocator, también es posible aplicar efectos personalizados independientemente de la mutabilidad del objeto devuelto final pasando a PostProcessor#setPostProcessor setPostProcessor. También PostProcessor puede ser una expresión 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;
                 });
             });

Si la imagen codificada está incompleta o contiene un error, o si se produce durante Exception la descodificación, se producirá una DecodeException DecodeException excepción . En algunos casos, ImageDecoder puede que haya descodificado parte de la imagen. Para mostrar la imagen parcial, OnPartialImageListener OnPartialImageListener se debe pasar a #setOnPartialImageListener setOnPartialImageListener. Por ejemplo:

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

Documentación de Java para android.graphics.ImageDecoder.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Campos

AllocatorDefault
Obsoletos.

Use la asignación predeterminada para la memoria de píxeles.

AllocatorHardware
Obsoletos.

Requerir un Bitmap.Config#HARDWAREBitmap.

AllocatorSharedMemory
Obsoletos.

Use la memoria compartida para la memoria de píxeles.

AllocatorSoftware
Obsoletos.

Use una asignación de software para la memoria de píxeles.

MemoryPolicyDefault
Obsoletos.

Use el más natural Bitmap.Config para el interno Bitmap.

MemoryPolicyLowRam
Obsoletos.

Guarde la memoria si es posible mediante un densar Bitmap.Config a costa de alguna calidad de imagen.

Propiedades

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Crop

Devuelve el rectángulo de recorte, si se establece. -o bien- Recorte la salida a subset la imagen escalada (posiblemente).

DecodeAsAlphaMaskEnabled

Devuelve si se trata la entrada de canal único como alfa. -o bien- Especifique si se puede tratar la salida como una máscara alfa.

Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
JniPeerMembers

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

MemorySizePolicy

Recupere la directiva de memoria para el descodificado Bitmap. -o bien- Especifique la directiva de memoria para el descodificado Bitmap.

MutableRequired

Devuelve si el descodificado Bitmap será mutable. -o bien- Especifique si Bitmap debe ser mutable.

OnPartialImageListener

Establezca (reemplace) en OnPartialImageListener este objeto.

PeerReference

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
PostProcessor

Devuelve el PostProcessor conjunto establecido actualmente. -o bien- Modifique la imagen después de la descodificación y el escalado.

ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

(Heredado de Object)
ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

(Heredado de Object)
UnpremultipliedRequired

Devuelve si tendrá Bitmap píxeles sinmultiplicar. -o bien- Especifique si debe Bitmap tener píxeles no multiplicados.

Métodos

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Close()

Cierra este recurso y renuncia a los recursos subyacentes.

CreateSource(AssetManager, String)

Cree un nuevo Source a partir de .android.net.Uri

CreateSource(Byte[])

Cree un nuevo Source a partir de .android.net.Uri

CreateSource(Byte[], Int32, Int32)

Cree un nuevo Source a partir de .android.net.Uri

CreateSource(ByteBuffer)

Cree un nuevo Source a partir de .android.net.Uri

CreateSource(ContentResolver, Uri)

Cree un nuevo Source a partir de .android.net.Uri

CreateSource(File)

Cree un nuevo Source a partir de .android.net.Uri

CreateSource(ICallable)

Cree un nuevo Source a partir de .android.net.Uri

CreateSource(Resources, Int32)

Cree un nuevo Source a partir de .android.net.Uri

DecodeBitmap(ImageDecoder+Source)

Vea #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Vea #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source)

Vea #decodeDrawable(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Vea #decodeDrawable(Source, OnHeaderDecodedListener).

Dispose()

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
Dispose(Boolean)

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
IsMimeTypeSupported(String)

Devuelve si el tipo MIME especificado es un formato de archivo compatible que esta clase puede descodificar.

JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetTargetColorSpace(ColorSpace)

Especifique el valor deseado ColorSpace para la salida.

SetTargetSampleSize(Int32)

Establezca el tamaño de destino con un sampleSize.

SetTargetSize(Int32, Int32)

Especifique el tamaño de la salida Drawable o Bitmap.

ToArray<T>()

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Eventos

PartialImage

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
IJavaPeerable.Finalized()

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

GetJniTypeName(IJavaPeerable)

Clase para convertir imágenes codificadas (como PNG, JPEG, WEBP, GIFo HEIF) en Drawable objetos o Bitmap .

Se aplica a