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
, GIF
o 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
, GIF
o HEIF
) en Drawable
objetos o Bitmap
.
Para usarlo, cree primero mediante Source Source
una de las createSource
sobrecargas. Por ejemplo, para descodificar de una Uri
llamada #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 onHeaderDecoded
de :
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 ) Drawable
será inmutable (es decir, Bitmap#isMutable Bitmap.isMutable()
devuelve false
), y normalmente tendrá Config
Bitmap.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 |