ImageDecoder Classe

Definição

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

[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
Herança
ImageDecoder
Atributos
Implementações

Comentários

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

Para usá-lo, primeiro crie um usando uma Source Source das createSource sobrecargas. Por exemplo, para decodificar de um Uri, chamar #createSource(ContentResolver, Uri) e passar o resultado para #decodeDrawable(Source) ou #decodeBitmap(Source):

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

Para alterar as configurações padrão, passe o Source Source e um OnHeaderDecodedListener OnHeaderDecodedListener para #decodeDrawable(Source, OnHeaderDecodedListener) ou #decodeBitmap(Source, OnHeaderDecodedListener). Por exemplo, para criar uma imagem amostrada com metade da largura e altura da imagem original, chame #setTargetSampleSize setTargetSampleSize(2) dentro OnHeaderDecodedListener#onHeaderDecoded onHeaderDecoded:

OnHeaderDecodedListener listener = new OnHeaderDecodedListener() {
                 public void onHeaderDecoded(ImageDecoder decoder, ImageInfo info, Source source) {
                     decoder.setTargetSampleSize(2);
                 }
             };
             Drawable drawable = ImageDecoder.decodeDrawable(source, listener);

Contém ImageInfo ImageInfo informações sobre a imagem codificada, como sua largura e altura, e ela Source Source pode ser usada para corresponder a um determinado Source Source se um único OnHeaderDecodedListener OnHeaderDecodedListener for usado com vários Source Source objetos.

O OnHeaderDecodedListener OnHeaderDecodedListener também pode ser implementado como um lambda:

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

Se a imagem codificada for animada GIF ou WEBPretornará #decodeDrawable decodeDrawable um AnimatedImageDrawable. Para iniciar sua animação, chame AnimatedImageDrawable#start AnimatedImageDrawable.start():

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

Por padrão, um Bitmap criado por ImageDecoder (incluindo um que está dentro de um Drawable) será imutável (ou seja, Bitmap#isMutable Bitmap.isMutable() retorna false), e normalmente terá ConfigBitmap.Config#HARDWARE. Embora essas propriedades possam ser alteradas com #setMutableRequired setMutableRequired(true) (que só é compatível com #decodeBitmap(Source) e #decodeBitmap(Source, OnHeaderDecodedListener)) e #setAllocatortambém é possível aplicar efeitos personalizados independentemente da mutabilidade do objeto retornado final passando um PostProcessor para #setPostProcessor setPostProcessor. Um PostProcessor também pode ser um 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;
                 });
             });

Se a imagem codificada estiver incompleta ou contiver um erro ou se ocorrer uma Exception durante a decodificação, uma DecodeException DecodeException será gerada. Em alguns casos, a ImageDecoder parte pode ter decodificada da imagem. Para exibir a imagem parcial, é OnPartialImageListener OnPartialImageListener necessário passar para #setOnPartialImageListener setOnPartialImageListener. Por exemplo:

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 documentação para android.graphics.ImageDecoder.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Campos

Nome Description
AllocatorDefault
Obsoleto.

Use a alocação padrão para a memória de pixel.

AllocatorHardware
Obsoleto.

Exigir um Bitmap.Config#HARDWAREBitmap.

AllocatorSharedMemory
Obsoleto.

Use memória compartilhada para a memória de pixel.

AllocatorSoftware
Obsoleto.

Use uma alocação de software para a memória de pixel.

MemoryPolicyDefault
Obsoleto.

Use o mais natural Bitmap.Config para o interno Bitmap.

MemoryPolicyLowRam
Obsoleto.

Salve a memória, se possível, usando um mais Bitmap.Config denso ao custo de alguma qualidade de imagem.

Propriedades

Nome Description
Allocator

Retorne o alocador para a memória de pixel. -ou- Escolha o backup para a memória de pixel.

Class

Retorna a classe de runtime deste Object.

(Herdado de Object)
Crop

Retorne o retângulo de corte, se definido. -ou- Cortar a saída para subset a imagem (possivelmente) dimensionada.

DecodeAsAlphaMaskEnabled

Retorne se deseja tratar a entrada de canal único como alfa. -ou- Especifique se a saída pode ser tratada como uma máscara alfa.

Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
JniPeerMembers

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

MemorySizePolicy

Recupere a política de memória para o decodificado Bitmap. -ou- Especifique a política de memória para o decodificado Bitmap.

MutableRequired

Retorne se o decodificado Bitmap será mutável. -ou- Especifique se a Bitmap opção deve ser mutável.

OnPartialImageListener

Defina (substitua) o OnPartialImageListener objeto.

PeerReference

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
PostProcessor

Retorne o PostProcessor conjunto atualmente. -ou- Modifique a imagem após a decodificação e o dimensionamento.

ThresholdClass

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

(Herdado de Object)
ThresholdType

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

(Herdado de Object)
UnpremultipliedRequired

Retorne se os Bitmap pixels não analisados terão. -ou- Especifique se os Bitmap pixels não especificados devem ser preteridos.

Métodos

Nome Description
Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Close()

Fecha esse recurso, renunciando a todos os recursos subjacentes.

CreateSource(AssetManager, String)

Criar um novo Source a partir de um android.net.Uri.

CreateSource(Byte[], Int32, Int32)

Criar um novo Source a partir de um android.net.Uri.

CreateSource(Byte[])

Criar um novo Source a partir de um android.net.Uri.

CreateSource(ByteBuffer)

Criar um novo Source a partir de um android.net.Uri.

CreateSource(ContentResolver, Uri)

Criar um novo Source a partir de um android.net.Uri.

CreateSource(File)

Criar um novo Source a partir de um android.net.Uri.

CreateSource(ICallable)

Criar um novo Source a partir de um android.net.Uri.

CreateSource(Resources, Int32)

Criar um novo Source a partir de um android.net.Uri.

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

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
Dispose(Boolean)

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
IsMimeTypeSupported(String)

Retorne se o tipo MIME fornecido for um formato de arquivo com suporte que pode ser decodificado por essa classe.

JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
SetTargetColorSpace(ColorSpace)

Especifique o desejado ColorSpace para a saída.

SetTargetSampleSize(Int32)

Defina o tamanho de destino com um sampleSize.

SetTargetSize(Int32, Int32)

Especifique o tamanho da saída Drawable ou Bitmap.

ToArray<T>()

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)

Eventos

Nome Description
PartialImage

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
IJavaPeerable.Finalized()

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

(Herdado de Object)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo marcada por runtime do Android.

JavaCast<TResult>(IJavaObject)

Uma classe para converter imagens codificadas (comoPNG, , JPEG, WEBPou GIFHEIF) em Drawable ou Bitmap objetos.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a