ImageDecoder Класс

Определение

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

[Android.Runtime.Register("android/graphics/ImageDecoder", ApiSince=28, DoNotGenerateAcw=true)]
public sealed class ImageDecoder : Java.Lang.Object, IDisposable, 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
Наследование
ImageDecoder
Атрибуты
Реализации

Комментарии

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили 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 SourceOnHeaderDecodedListener 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) -&gt; {
                 decoder.setTargetSampleSize(2);
             });

Если закодированное изображение является анимированным GIF или WEBP#decodeDrawable decodeDrawable возвращаетсяAnimatedImageDrawable. Чтобы запустить анимацию, вызовите AnimatedImageDrawable#start AnimatedImageDrawable.start():

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

По умолчанию созданный (включая тот, который находится внутриBitmap) будет неизменяемым (т. е. ImageDecoder возвращаетсяDrawable), и обычно он будет иметьBitmap#isMutable Bitmap.isMutable()false.ConfigBitmap.Config#HARDWARE Хотя эти свойства можно изменить с #setMutableRequired setMutableRequired(true) помощью (который совместим только с #decodeBitmap(Source) и #decodeBitmap(Source, OnHeaderDecodedListener)) и #setAllocator, также можно применять пользовательские эффекты независимо от мутируемости окончательно возвращаемого объекта путем передачи в PostProcessor#setPostProcessor setPostProcessor. Может PostProcessor также быть лямбда-лямбда-код:

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;
                 });
             });

Если кодированное изображение является неполным или содержит ошибку или Exception возникает во время декодирования, DecodeException DecodeException создается исключение. В некоторых случаях может ImageDecoder декодировать часть изображения. Чтобы отобразить частичное изображение, OnPartialImageListener OnPartialImageListener необходимо передать в #setOnPartialImageListener setOnPartialImageListener. Рассмотрим пример.

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 документации по android.graphics.ImageDecoder.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Поля

Имя Описание
AllocatorDefault
Устаревшие.

Используйте выделение по умолчанию для памяти пикселей.

AllocatorHardware
Устаревшие.

Bitmap.Config#HARDWARE BitmapТребовать .

AllocatorSharedMemory
Устаревшие.

Используйте общую память для памяти пикселей.

AllocatorSoftware
Устаревшие.

Используйте выделение программного обеспечения для памяти пикселей.

MemoryPolicyDefault
Устаревшие.

Используйте наиболее естественный Bitmap.Config для внутреннего Bitmap.

MemoryPolicyLowRam
Устаревшие.

Сохраните память, если это возможно, с помощью плотнее Bitmap.Config по стоимости некоторого качества изображения.

Свойства

Имя Описание
Allocator

Возвращает распределитель памяти пикселей. -или- Выберите резервную копию для памяти пикселей.

Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Crop

Возвращает прямоугольник обрезки, если задано. -или- Обрезка выходных данных subset в масштабируемом изображении (возможно).

DecodeAsAlphaMaskEnabled

Возвращает значение, следует ли рассматривать входные данные одного канала как альфа-канал. -или- Укажите, следует ли рассматривать выходные данные как альфа-маску.

Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

(Унаследовано от JavaObject)
JniPeerMembers

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

MemorySizePolicy

Получение политики памяти для декодированного Bitmap. -или- Укажите политику памяти для декодированного Bitmap.

MutableRequired

Возвращает, будет ли декодировано Bitmap изменяться. -или- Укажите, следует ли Bitmap изменять значение.

OnPartialImageListener

Задайте (замените OnPartialImageListener ) этот объект.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
PostProcessor

Возвращает текущий PostProcessor набор. -или- Измените изображение после декодирования и масштабирования.

ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

(Унаследовано от Object)
ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

(Унаследовано от Object)
UnpremultipliedRequired

Возвращает значение, имеет ли Bitmap нерекомендипированные пиксели. -или- Укажите, должны ли Bitmap быть нерекомендаемые пиксели.

Методы

Имя Описание
Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Close()

Закрывает этот ресурс, отклинивая все базовые ресурсы.

Construct(JniObjectReference, JniObjectReferenceOptions)

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

(Унаследовано от JavaObject)
CreateSource(AssetManager, String)

Создайте новый из Source файла в каталоге ресурсов.

CreateSource(Byte[], Int32, Int32)

Создайте новый объект Source из области массива байтов.

CreateSource(Byte[])

Создайте новый из Source массива байтов.

CreateSource(ByteBuffer)

Создание нового Source из ByteBufferобъекта .

CreateSource(ContentResolver, Uri)

Создание нового Source из android.net.Uriобъекта .

CreateSource(File)

Создайте новое из Source файла.

CreateSource(ICallable)

Создайте новое из Source вызываемого объекта, возвращающего объект AssetFileDescriptor.

CreateSource(Resources, Int32)

Создайте новый из Source ресурса.

DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

См. #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeBitmap(ImageDecoder+Source)

См. #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

См. #decodeDrawable(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source)

См. #decodeDrawable(Source, OnHeaderDecodedListener).

Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

(Унаследовано от JavaObject)
Equals(Object)

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
GetHashCode()

Возвращает хэш-значение кода для объекта.

(Унаследовано от Object)
IsMimeTypeSupported(String)

Возвращается, если заданный тип MIME является поддерживаемым форматом файла, который можно декодировать этим классом.

JavaFinalize()

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

(Унаследовано от JavaObject)
SetTargetColorSpace(ColorSpace)

Укажите нужный ColorSpace результат.

SetTargetSampleSize(Int32)

Задайте целевой размер с помощью примераSize.

SetTargetSize(Int32, Int32)

Укажите размер выходных данных Drawable или Bitmap.

ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

События

Имя Описание
PartialImage

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

Явные реализации интерфейса

Имя Описание
IJavaPeerable.Disposed()

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

(Унаследовано от JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

Методы расширения

Имя Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Класс для преобразования закодированных изображений (напримерPNG, , JPEG, WEBPGIFили HEIF) в Drawable объекты или Bitmap объекты.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к