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
- Наследование
- Атрибуты
- Реализации
Комментарии
Класс для преобразования закодированных изображений (например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) -> {
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) -> {
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) |
Класс для преобразования закодированных изображений (например |