ImageDecoder Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 Source OnHeaderDecodedListener 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) -> {
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.ImageDecoder Bitmap 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) -> {
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;
});
});
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) -> {
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;
});
});
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 |
| 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 |
| MemoryPolicyLowRam |
Obsoletos.
Guarde la memoria si es posible mediante un densar |
Propiedades
| Class |
Devuelve la clase en tiempo de ejecución de este |
| Crop |
Devuelve el rectángulo de recorte, si se establece. -o bien- Recorte la salida a |
| 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 |
| JniPeerMembers |
Clase para convertir imágenes codificadas (como |
| MemorySizePolicy |
Recupere la directiva de memoria para el descodificado |
| MutableRequired |
Devuelve si el descodificado |
| OnPartialImageListener |
Establezca (reemplace) en |
| PeerReference |
Clase para convertir imágenes codificadas (como |
| PostProcessor |
Devuelve el |
| 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á |
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 |
| CreateSource(Byte[], Int32, Int32) |
Cree un nuevo |
| CreateSource(Byte[]) |
Cree un nuevo |
| CreateSource(ByteBuffer) |
Cree un nuevo |
| CreateSource(ContentResolver, Uri) |
Cree un nuevo |
| CreateSource(File) |
Cree un nuevo |
| CreateSource(ICallable) |
Cree un nuevo |
| CreateSource(Resources, Int32) |
Cree un nuevo |
| DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Vea |
| DecodeBitmap(ImageDecoder+Source) |
Vea |
| DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Vea |
| DecodeDrawable(ImageDecoder+Source) |
Vea |
| Dispose() |
Clase para convertir imágenes codificadas (como |
| Dispose(Boolean) |
Clase para convertir imágenes codificadas (como |
| 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 |
| SetTargetSampleSize(Int32) |
Establezca el tamaño de destino con un sampleSize. |
| SetTargetSize(Int32, Int32) |
Especifique el tamaño de la salida |
| ToArray<T>() |
Clase para convertir imágenes codificadas (como |
| ToString() |
Devuelve una representación de cadena del objeto. (Heredado de Object) |
| UnregisterFromRuntime() |
Clase para convertir imágenes codificadas (como |
| 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, 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
| PartialImage |
Clase para convertir imágenes codificadas (como |
Implementaciones de interfaz explícitas
| IJavaPeerable.Disposed() |
Clase para convertir imágenes codificadas (como |
| IJavaPeerable.DisposeUnlessReferenced() |
Clase para convertir imágenes codificadas (como |
| IJavaPeerable.Finalized() |
Clase para convertir imágenes codificadas (como |
| IJavaPeerable.JniManagedPeerState |
Clase para convertir imágenes codificadas (como |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Clase para convertir imágenes codificadas (como |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Clase para convertir imágenes codificadas (como |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Clase para convertir imágenes codificadas (como |
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 |
| GetJniTypeName(IJavaPeerable) |
Clase para convertir imágenes codificadas (como |