ImageDecoder Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Класс для преобразования закодированных изображений (напримерPNG
, , JPEG
, WEBP
GIF
или HEIF
) в Drawable
объекты или Bitmap
объекты.
[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
- Наследование
- Атрибуты
- Реализации
Комментарии
Класс для преобразования закодированных изображений (напримерPNG
, , JPEG
, WEBP
GIF
или HEIF
) в Drawable
объекты или Bitmap
объекты.
Чтобы использовать его, сначала создайте Source Source
одну из createSource
перегрузок. Например, чтобы декодировать из Uri
, вызывать #createSource(ContentResolver, Uri)
и передавать результат в #decodeDrawable(Source)
:#decodeBitmap(Source)
File file = new File(...);
ImageDecoder.Source source = ImageDecoder.createSource(file);
Drawable drawable = ImageDecoder.decodeDrawable(source);
Чтобы изменить параметры по умолчанию, передайте и передаете Source Source
OnHeaderDecodedListener OnHeaderDecodedListener
#decodeDrawable(Source, OnHeaderDecodedListener)
в или.#decodeBitmap(Source, OnHeaderDecodedListener)
Например, чтобы создать образец с половиной ширины и высоты исходного изображения, вызовите #setTargetSampleSize setTargetSampleSize(2)
внутри 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);
Содержит ImageInfo ImageInfo
сведения о кодированном изображении, например его ширине и высоте, и Source Source
его можно использовать для сопоставления с определенным Source Source
, если один OnHeaderDecodedListener OnHeaderDecodedListener
используется с несколькими Source Source
объектами.
Можно OnHeaderDecodedListener OnHeaderDecodedListener
также реализовать как лямбда-лямбда-код:
Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -> {
decoder.setTargetSampleSize(2);
});
Если закодированное изображение является анимированным GIF
или WEBP
#decodeDrawable decodeDrawable
возвращаетсяAnimatedImageDrawable
. Чтобы запустить анимацию, вызовите AnimatedImageDrawable#start AnimatedImageDrawable.start()
:
Drawable drawable = ImageDecoder.decodeDrawable(source);
if (drawable instanceof AnimatedImageDrawable) {
((AnimatedImageDrawable) drawable).start();
}
По умолчанию созданный (включая тот, который находится внутриDrawable
) будет неизменяемым (т. е. Bitmap#isMutable Bitmap.isMutable()
возвращаетсяfalse
), и обычно он будет иметьBitmap.Config#HARDWARE
Config
.ImageDecoder
Bitmap
Хотя эти свойства можно изменить с #setMutableRequired setMutableRequired(true)
помощью (который совместим только с #decodeBitmap(Source)
и #decodeBitmap(Source, OnHeaderDecodedListener)
) и #setAllocator
, также можно применять пользовательские эффекты независимо от мутируемости окончательно возвращаемого объекта путем передачи в PostProcessor
#setPostProcessor setPostProcessor
. Может PostProcessor
также быть лямбда-лямбда-код:
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;
});
});
Если кодированное изображение является неполным или содержит ошибку или Exception
возникает во время декодирования, DecodeException DecodeException
создается исключение. В некоторых случаях может ImageDecoder
декодировать часть изображения. Чтобы отобразить частичное изображение, OnPartialImageListener OnPartialImageListener
необходимо передать в #setOnPartialImageListener setOnPartialImageListener
. Например:
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 для android.graphics.ImageDecoder
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Поля
AllocatorDefault |
Устаревшие..
Используйте выделение по умолчанию для памяти пикселей. |
AllocatorHardware |
Устаревшие..
|
AllocatorSharedMemory |
Устаревшие..
Используйте общую память для памяти пикселей. |
AllocatorSoftware |
Устаревшие..
Используйте выделение программного обеспечения для памяти пикселей. |
MemoryPolicyDefault |
Устаревшие..
Используйте наиболее естественный |
MemoryPolicyLowRam |
Устаревшие..
Сохраните память, если это возможно, с помощью плотнее |
Свойства
Class |
Возвращает класс среды выполнения этого |
Crop |
Возвращает прямоугольник обрезки, если задано. -или- Обрезка выходных данных |
DecodeAsAlphaMaskEnabled |
Возвращает значение, следует ли рассматривать входные данные одного канала как альфа-канал. -или- Укажите, следует ли рассматривать выходные данные как альфа-маску. |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
JniIdentityHashCode |
Класс для преобразования закодированных изображений (например |
JniPeerMembers |
Класс для преобразования закодированных изображений (например |
MemorySizePolicy |
Получение политики памяти для декодированного |
MutableRequired |
Возвращает, будет ли декодировано |
OnPartialImageListener |
Задайте (замените |
PeerReference |
Класс для преобразования закодированных изображений (например |
PostProcessor |
Возвращает текущий |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. (Унаследовано от Object) |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. (Унаследовано от Object) |
UnpremultipliedRequired |
Возвращает значение, имеет ли |
Методы
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
Close() |
Закрывает этот ресурс, отклинивая все базовые ресурсы. |
CreateSource(AssetManager, String) |
Создание нового |
CreateSource(Byte[], Int32, Int32) |
Создание нового |
CreateSource(Byte[]) |
Создание нового |
CreateSource(ByteBuffer) |
Создание нового |
CreateSource(ContentResolver, Uri) |
Создание нового |
CreateSource(File) |
Создание нового |
CreateSource(ICallable) |
Создание нового |
CreateSource(Resources, Int32) |
Создание нового |
DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
См. раздел |
DecodeBitmap(ImageDecoder+Source) |
См. раздел |
DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
См. раздел |
DecodeDrawable(ImageDecoder+Source) |
См. раздел |
Dispose() |
Класс для преобразования закодированных изображений (например |
Dispose(Boolean) |
Класс для преобразования закодированных изображений (например |
Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
IsMimeTypeSupported(String) |
Возвращается, если заданный тип MIME является поддерживаемым форматом файла, который можно декодировать этим классом. |
JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
SetTargetColorSpace(ColorSpace) |
Укажите нужный |
SetTargetSampleSize(Int32) |
Задайте целевой размер с помощью примераSize. |
SetTargetSize(Int32, Int32) |
Укажите размер выходных данных |
ToArray<T>() |
Класс для преобразования закодированных изображений (например |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Класс для преобразования закодированных изображений (например |
Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
События
PartialImage |
Класс для преобразования закодированных изображений (например |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
Класс для преобразования закодированных изображений (например |
IJavaPeerable.DisposeUnlessReferenced() |
Класс для преобразования закодированных изображений (например |
IJavaPeerable.Finalized() |
Класс для преобразования закодированных изображений (например |
IJavaPeerable.JniManagedPeerState |
Класс для преобразования закодированных изображений (например |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Класс для преобразования закодированных изображений (например |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Класс для преобразования закодированных изображений (например |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Класс для преобразования закодированных изображений (например |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Класс для преобразования закодированных изображений (например |
GetJniTypeName(IJavaPeerable) |
Класс для преобразования закодированных изображений (например |