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
- Наследование
- Атрибуты
- Реализации
Комментарии
Класс для преобразования закодированных изображений (например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) -> {
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) -> {
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.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Поля
| Имя | Описание |
|---|---|
| AllocatorDefault |
Устаревшие.
Используйте выделение по умолчанию для памяти пикселей. |
| AllocatorHardware |
Устаревшие.
|
| AllocatorSharedMemory |
Устаревшие.
Используйте общую память для памяти пикселей. |
| AllocatorSoftware |
Устаревшие.
Используйте выделение программного обеспечения для памяти пикселей. |
| MemoryPolicyDefault |
Устаревшие.
Используйте наиболее естественный |
| MemoryPolicyLowRam |
Устаревшие.
Сохраните память, если это возможно, с помощью плотнее |
Свойства
| Имя | Описание |
|---|---|
| Allocator |
Возвращает распределитель памяти пикселей. -или- Выберите резервную копию для памяти пикселей. |
| Class |
Возвращает класс среды выполнения этого |
| Crop |
Возвращает прямоугольник обрезки, если задано. -или- Обрезка выходных данных |
| DecodeAsAlphaMaskEnabled |
Возвращает значение, следует ли рассматривать входные данные одного канала как альфа-канал. -или- Укажите, следует ли рассматривать выходные данные как альфа-маску. |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Класс для преобразования закодированных изображений (например |
| JniPeerMembers |
Класс для преобразования закодированных изображений (например |
| MemorySizePolicy |
Получение политики памяти для декодированного |
| MutableRequired |
Возвращает, будет ли декодировано |
| OnPartialImageListener |
Задайте (замените |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| PostProcessor |
Возвращает текущий |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. (Унаследовано от Object) |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. (Унаследовано от Object) |
| UnpremultipliedRequired |
Возвращает значение, имеет ли |
Методы
| Имя | Описание |
|---|---|
| Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
| Close() |
Закрывает этот ресурс, отклинивая все базовые ресурсы. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Класс для преобразования закодированных изображений (например |
| 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() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Класс для преобразования закодированных изображений (например |
| Equals(Object) |
Класс для преобразования закодированных изображений (например |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| GetHashCode() |
Возвращает хэш-значение кода для объекта. (Унаследовано от Object) |
| IsMimeTypeSupported(String) |
Возвращается, если заданный тип MIME является поддерживаемым форматом файла, который можно декодировать этим классом. |
| JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Notify() |
Просыпается один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Класс для преобразования закодированных изображений (например |
| SetTargetColorSpace(ColorSpace) |
Укажите нужный |
| SetTargetSampleSize(Int32) |
Задайте целевой размер с помощью примераSize. |
| SetTargetSize(Int32, Int32) |
Укажите размер выходных данных |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.> (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
События
| Имя | Описание |
|---|---|
| PartialImage |
Класс для преобразования закодированных изображений (например |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IJavaPeerable.Disposed() |
Класс для преобразования закодированных изображений (например |
| IJavaPeerable.Finalized() |
Класс для преобразования закодированных изображений (например |
| IJavaPeerable.JniObjectReferenceControlBlock |
Класс для преобразования закодированных изображений (например |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Класс для преобразования закодированных изображений (например |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Класс для преобразования закодированных изображений (например |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Класс для преобразования закодированных изображений (например |
| IJavaPeerable.UnregisterFromRuntime() |
Класс для преобразования закодированных изображений (например |
Методы расширения
| Имя | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Класс для преобразования закодированных изображений (например |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |