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.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 ) Bitmapserá inmutable (es decir, ImageDecoder devuelve Drawable), y normalmente tendrá Bitmap#isMutable Bitmap.isMutable()false.ConfigBitmap.Config#HARDWARE 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;
                 });
             });

Java documentación para android.graphics.ImageDecoder.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Campos

Nombre Description
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

Nombre Description
Allocator

Devuelve el asignador para la memoria de píxeles. -o bien- Elija la copia de seguridad para la memoria de píxeles.

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

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

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

(Heredado de JavaObject)
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

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(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

Nombre Description
Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Close()

Cierra este recurso y renuncia a los recursos subyacentes.

Construct(JniObjectReference, JniObjectReferenceOptions)

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

(Heredado de JavaObject)
CreateSource(AssetManager, String)

Cree un nuevo Source a partir de un archivo en el directorio assets.

CreateSource(Byte[], Int32, Int32)

Cree un nuevo Source a partir de una región de matriz de bytes.

CreateSource(Byte[])

Cree un nuevo Source a partir de una matriz de bytes.

CreateSource(ByteBuffer)

Cree un nuevo Source a partir de .ByteBuffer

CreateSource(ContentResolver, Uri)

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

CreateSource(File)

Cree un nuevo Source a partir de un archivo.

CreateSource(ICallable)

Cree un nuevo Source a partir de un invocable que devuelva un AssetFileDescriptorobjeto .

CreateSource(Resources, Int32)

Cree un nuevo Source a partir de un recurso.

DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Consulte #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeBitmap(ImageDecoder+Source)

Consulte #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Consulte #decodeDrawable(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source)

Consulte #decodeDrawable(Source, OnHeaderDecodedListener).

Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

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

(Heredado de JavaObject)
Equals(Object)

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

(Heredado de JavaObject)
Equals(Object)

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

(Heredado de Object)
GetHashCode()

Devuelve un valor de código hash para el 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)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

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

(Heredado de JavaObject)
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>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto .

(Heredado de Object)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Wait()

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

(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)
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)

Eventos

Nombre Description
PartialImage

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

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

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

(Heredado de JavaObject)
IJavaPeerable.Finalized()

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

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

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

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

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

(Heredado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

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

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

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 .

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a