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 (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
- 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) -> {
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) -> {
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 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) -> {
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 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 |
| 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.
Salve a memória, se possível, usando um mais |
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 |
| Crop |
Retorne o retângulo de corte, se definido. -ou- Cortar a saída para |
| 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 (como |
| JniPeerMembers |
Uma classe para converter imagens codificadas (como |
| MemorySizePolicy |
Recupere a política de memória para o decodificado |
| MutableRequired |
Retorne se o decodificado |
| OnPartialImageListener |
Defina (substitua) o |
| PeerReference |
Uma classe para converter imagens codificadas (como |
| PostProcessor |
Retorne o |
| 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 |
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 |
| CreateSource(Byte[], Int32, Int32) |
Criar um novo |
| CreateSource(Byte[]) |
Criar um novo |
| CreateSource(ByteBuffer) |
Criar um novo |
| CreateSource(ContentResolver, Uri) |
Criar um novo |
| CreateSource(File) |
Criar um novo |
| CreateSource(ICallable) |
Criar um novo |
| CreateSource(Resources, Int32) |
Criar 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 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 |
| 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é 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 (como |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| 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
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
Uma classe para converter imagens codificadas (como |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |