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.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 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) -> {
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) -> {
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;
});
});
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 |
| 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
| 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 |
| 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 |
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 |
| 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 |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| 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
| 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 |
| 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) |
Consulte |
| DecodeBitmap(ImageDecoder+Source) |
Consulte |
| DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Consulte |
| DecodeDrawable(ImageDecoder+Source) |
Consulte |
| 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 |
| Equals(Object) |
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 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 |
| 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>() |
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 |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IJavaPeerable.Disposed() |
Clase para convertir imágenes codificadas (como |
| IJavaPeerable.Finalized() |
Clase para convertir imágenes codificadas (como |
| IJavaPeerable.JniObjectReferenceControlBlock |
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 |
| IJavaPeerable.UnregisterFromRuntime() |
Clase para convertir imágenes codificadas (como |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerció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 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |