Compartilhar via


ImageDecoder Classe

Definição

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou 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 (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

Para usá-lo, primeiro crie um usando uma Source Source das createSource sobrecargas. Por exemplo, para decodificar de um Uri, chame #createSource(ContentResolver, Uri) e passe 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 de amostra com metade da largura e altura da imagem original, chame #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);

O ImageInfo ImageInfo contém informações sobre a imagem codificada, como sua largura e altura, e o Source Source pode ser usado para corresponder a um específico 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 WEBP, #decodeDrawable decodeDrawable retornará um AnimatedImageDrawablearquivo . 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 #setAllocator, também é possível aplicar efeitos personalizados independentemente da mutabilidade do objeto retornado final passando a para PostProcessor #setPostProcessor setPostProcessor. A 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 um Exception durante a decodificação, um DecodeException DecodeException será lançado. Em alguns casos, o ImageDecoder pode ter decodificado parte da imagem. Para exibir a imagem parcial, um OnPartialImageListener OnPartialImageListener deve ser passado 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;
                 });
             });

Documentação Java para android.graphics.ImageDecoder.

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

Campos

AllocatorDefault
Obsoleto.

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

AllocatorHardware
Obsoleto.

Exigir um Bitmap.Config#HARDWAREBitmaparquivo .

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.

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

Propriedades

Class

Retorna a classe de tempo de execução deste Object.

(Herdado de Object)
Crop

Retorne o retângulo de corte, se definido. -ou- Recorte 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 deve ser potencialmente 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 (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

(Herdado de Object)
JniPeerMembers

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

MemorySizePolicy

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

MutableRequired

Retorne se o decodificado Bitmap será mutável. -ou- Especifique se o Bitmap deve ser mutável.

OnPartialImageListener

Defina (substitua) o OnPartialImageListener neste objeto.

PeerReference

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

(Herdado de Object)
PostProcessor

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

ThresholdClass

Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

(Herdado de Object)
ThresholdType

Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

(Herdado de Object)
UnpremultipliedRequired

Retorne se o Bitmap terá pixels não pré-multiplicados. -ou- Especifique se o Bitmap deve ter pixels não pré-multiplicados.

Métodos

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Close()

Fecha esse recurso, abrindo mão de todos os recursos subjacentes.

CreateSource(AssetManager, String)

Crie um novo Source a partir de um android.net.Uriarquivo .

CreateSource(Byte[], Int32, Int32)

Crie um novo Source a partir de um android.net.Uriarquivo .

CreateSource(Byte[])

Crie um novo Source a partir de um android.net.Uriarquivo .

CreateSource(ByteBuffer)

Crie um novo Source a partir de um android.net.Uriarquivo .

CreateSource(ContentResolver, Uri)

Crie um novo Source a partir de um android.net.Uriarquivo .

CreateSource(File)

Crie um novo Source a partir de um android.net.Uriarquivo .

CreateSource(ICallable)

Crie um novo Source a partir de um android.net.Uriarquivo .

CreateSource(Resources, Int32)

Crie um novo Source a partir de um android.net.Uriarquivo .

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 (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

(Herdado de Object)
Dispose(Boolean)

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou 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 possa 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 (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou 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 (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até que ele seja ativado, normalmente sendo <em 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 sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

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

(Herdado de Object)

Eventos

PartialImage

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

Implantações explícitas de interface

IJavaPeerable.Disposed()

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

(Herdado de Object)
IJavaPeerable.Finalized()

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

(Herdado de Object)

Métodos de Extensão

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada em tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

GetJniTypeName(IJavaPeerable)

Uma classe para converter imagens codificadas (como PNG, JPEG, WEBP, GIFou HEIF) em Drawable Bitmap ou objetos.

Aplica-se a