ImageDecoder Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Uma classe para converter imagens codificadas (como PNG
, JPEG
, WEBP
, GIF
ou 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
- Atributos
- Implementações
Comentários
Uma classe para converter imagens codificadas (como PNG
, JPEG
, WEBP
, GIF
ou 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 onHeaderDecoded
de :
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) -> {
decoder.setTargetSampleSize(2);
});
Se a imagem codificada for animada GIF
ou WEBP
, #decodeDrawable decodeDrawable
retornará um AnimatedImageDrawable
arquivo . 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á Config
Bitmap.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) -> {
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;
});
});
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) -> {
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;
});
});
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 |
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 |
MemoryPolicyLowRam |
Obsoleto.
Economize memória, se possível, usando um mais |
Propriedades
Class |
Retorna a classe de tempo de execução deste |
Crop |
Retorne o retângulo de corte, se definido. -ou- Recorte a saída para |
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 |
JniPeerMembers |
Uma classe para converter imagens codificadas (como |
MemorySizePolicy |
Recupere a política de memória para o |
MutableRequired |
Retorne se o decodificado |
OnPartialImageListener |
Defina (substitua) o |
PeerReference |
Uma classe para converter imagens codificadas (como |
PostProcessor |
Retorne o |
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 |
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 |
CreateSource(Byte[], Int32, Int32) |
Crie um novo |
CreateSource(Byte[]) |
Crie um novo |
CreateSource(ByteBuffer) |
Crie um novo |
CreateSource(ContentResolver, Uri) |
Crie um novo |
CreateSource(File) |
Crie um novo |
CreateSource(ICallable) |
Crie um novo |
CreateSource(Resources, Int32) |
Crie um novo |
DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Consulte |
DecodeBitmap(ImageDecoder+Source) |
Consulte |
DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Consulte |
DecodeDrawable(ImageDecoder+Source) |
Consulte |
Dispose() |
Uma classe para converter imagens codificadas (como |
Dispose(Boolean) |
Uma classe para converter imagens codificadas (como |
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 |
SetTargetSampleSize(Int32) |
Defina o tamanho de destino com um sampleSize. |
SetTargetSize(Int32, Int32) |
Especifique o tamanho da saída |
ToArray<T>() |
Uma classe para converter imagens codificadas (como |
ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
UnregisterFromRuntime() |
Uma classe para converter imagens codificadas (como |
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 |
Implantações explícitas de interface
IJavaPeerable.Disposed() |
Uma classe para converter imagens codificadas (como |
IJavaPeerable.DisposeUnlessReferenced() |
Uma classe para converter imagens codificadas (como |
IJavaPeerable.Finalized() |
Uma classe para converter imagens codificadas (como |
IJavaPeerable.JniManagedPeerState |
Uma classe para converter imagens codificadas (como |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Uma classe para converter imagens codificadas (como |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Uma classe para converter imagens codificadas (como |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Uma classe para converter imagens codificadas (como |
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 |
GetJniTypeName(IJavaPeerable) |
Uma classe para converter imagens codificadas (como |