Поделиться через


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.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
Наследование
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 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) -&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();
             }

По умолчанию созданный (включая тот, который находится внутриDrawable) будет неизменяемым (т. е. Bitmap#isMutable Bitmap.isMutable() возвращаетсяfalse), и обычно он будет иметьBitmap.Config#HARDWAREConfig.ImageDecoder Bitmap Хотя эти свойства можно изменить с #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.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Поля

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

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

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

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

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

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

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

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

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

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

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

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

Свойства

Class

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

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

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

DecodeAsAlphaMaskEnabled

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

Handle

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

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

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

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

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

MemorySizePolicy

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

MutableRequired

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

OnPartialImageListener

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

PeerReference

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

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

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

ThresholdClass

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

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

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

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

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

Методы

Clone()

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

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

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

CreateSource(AssetManager, String)

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

CreateSource(Byte[], Int32, Int32)

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

CreateSource(Byte[])

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

CreateSource(ByteBuffer)

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

CreateSource(ContentResolver, Uri)

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

CreateSource(File)

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

CreateSource(ICallable)

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

CreateSource(Resources, Int32)

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

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()

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

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

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

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

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

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

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

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

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

JavaFinalize()

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

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

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

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

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

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

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

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

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

SetTargetSampleSize(Int32)

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

SetTargetSize(Int32, Int32)

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

ToArray<T>()

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

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

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

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

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

(Унаследовано от 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 объекты.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

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