ImageDecoder Kelas

Definisi

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

[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
Warisan
ImageDecoder
Atribut
Penerapan

Keterangan

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

Untuk menggunakannya, pertama-tama buat Source Source menggunakan salah createSource satu kelebihan beban. Misalnya, untuk mendekode dari Uri, memanggil #createSource(ContentResolver, Uri) dan meneruskan hasilnya ke #decodeDrawable(Source) atau #decodeBitmap(Source):

File file = new File(...);
             ImageDecoder.Source source = ImageDecoder.createSource(file);
             Drawable drawable = ImageDecoder.decodeDrawable(source);

Untuk mengubah pengaturan default, teruskan Source Source dan OnHeaderDecodedListener OnHeaderDecodedListener ke #decodeDrawable(Source, OnHeaderDecodedListener) atau #decodeBitmap(Source, OnHeaderDecodedListener). Misalnya, untuk membuat gambar sampel dengan setengah lebar dan tinggi gambar asli, panggil #setTargetSampleSize setTargetSampleSize(2) di dalam 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 berisi informasi tentang gambar yang dikodekan, seperti lebar dan tingginya, dan Source Source dapat digunakan untuk mencocokkan dengan tertentu Source Source jika satu OnHeaderDecodedListener OnHeaderDecodedListener digunakan dengan beberapa Source Source objek.

juga OnHeaderDecodedListener OnHeaderDecodedListener dapat diimplementasikan sebagai lambda:

Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -&gt; {
                 decoder.setTargetSampleSize(2);
             });

Jika gambar yang dikodekan adalah animasi GIF atau WEBP, #decodeDrawable decodeDrawable akan mengembalikan AnimatedImageDrawable. Untuk memulai animasinya, panggil AnimatedImageDrawable#start AnimatedImageDrawable.start():

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

Secara default, yang Bitmap dibuat oleh ImageDecoder (termasuk yang ada di dalam Drawable) akan tidak dapat diubah (yaitu Bitmap#isMutable Bitmap.isMutable() mengembalikan false), dan biasanya akan memiliki ConfigBitmap.Config#HARDWARE. Meskipun properti ini dapat diubah dengan #setMutableRequired setMutableRequired(true) (yang hanya kompatibel dengan #decodeBitmap(Source) dan #decodeBitmap(Source, OnHeaderDecodedListener)) dan #setAllocator, dimungkinkan juga untuk menerapkan efek kustom terlepas dari mutabilitas objek yang dikembalikan akhir dengan meneruskan PostProcessor ke #setPostProcessor setPostProcessor. Juga PostProcessor bisa berupa lambda:

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

Jika gambar yang dikodekan tidak lengkap atau berisi kesalahan, atau jika Exception terjadi selama decoding, akan DecodeException DecodeException dilemparkan. Dalam beberapa kasus, ImageDecoder mungkin telah mendekode bagian dari gambar. Untuk menampilkan gambar parsial, harus OnPartialImageListener OnPartialImageListener diteruskan ke #setOnPartialImageListener setOnPartialImageListener. Contohnya:

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 dokumentasi untuk android.graphics.ImageDecoder.

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Bidang

Nama Deskripsi
AllocatorDefault
Kedaluwarsa.

Gunakan alokasi default untuk memori piksel.

AllocatorHardware
Kedaluwarsa.

Bitmap.Config#HARDWARE BitmapMemerlukan .

AllocatorSharedMemory
Kedaluwarsa.

Gunakan memori bersama untuk memori piksel.

AllocatorSoftware
Kedaluwarsa.

Gunakan alokasi perangkat lunak untuk memori piksel.

MemoryPolicyDefault
Kedaluwarsa.

Gunakan yang paling alami Bitmap.Config untuk internal Bitmap.

MemoryPolicyLowRam
Kedaluwarsa.

Hemat memori jika memungkinkan dengan menggunakan yang lebih Bitmap.Config padat dengan biaya beberapa kualitas gambar.

Properti

Nama Deskripsi
Allocator

Mengembalikan alokator untuk memori piksel. -or- Pilih backing untuk memori piksel.

Class

Mengembalikan kelas runtime dari .Object

(Diperoleh dari Object)
Crop

Mengembalikan persegi panjang pemotongan, jika diatur. -atau- Pangkas output ke subset gambar (mungkin) yang diskalakan.

DecodeAsAlphaMaskEnabled

Mengembalikan apakah akan memperlakukan input saluran tunggal sebagai alfa. -atau- Tentukan apakah akan berpotensi memperlakukan output sebagai masker alfa.

Handle

Handel ke instans Android yang mendasar.

(Diperoleh dari Object)
JniIdentityHashCode

Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop.

(Diperoleh dari Object)
JniManagedPeerState

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

(Diperoleh dari JavaObject)
JniPeerMembers

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

MemorySizePolicy

Ambil kebijakan memori untuk yang didekodekan Bitmap. -or- Tentukan kebijakan memori untuk dekode Bitmap.

MutableRequired

Mengembalikan apakah dekode Bitmap akan dapat diubah. -or- Tentukan apakah Bitmap harus dapat diubah.

OnPartialImageListener

Atur OnPartialImageListener (ganti) pada objek ini.

PeerReference

Mendapatkan referensi objek JNI untuk peer Java ini.

(Diperoleh dari Object)
PostProcessor

Mengembalikan set yang PostProcessor saat ini ditetapkan. -or- Ubah gambar setelah decoding dan penskalakan.

ThresholdClass

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

(Diperoleh dari Object)
ThresholdType

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

(Diperoleh dari Object)
UnpremultipliedRequired

Mengembalikan apakah Bitmap akan memiliki piksel yang tidak tersimpan. -or- Tentukan apakah Bitmap harus memiliki piksel yang tidak tersimpan.

Metode

Nama Deskripsi
Clone()

Membuat dan mengembalikan salinan objek ini.

(Diperoleh dari Object)
Close()

Menutup sumber daya ini, melepaskan sumber daya yang mendasar.

Construct(JniObjectReference, JniObjectReferenceOptions)

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

(Diperoleh dari JavaObject)
CreateSource(AssetManager, String)

Buat baru Source dari file di direktori aset.

CreateSource(Byte[], Int32, Int32)

Buat baru Source dari wilayah array byte.

CreateSource(Byte[])

Buat baru Source dari array byte.

CreateSource(ByteBuffer)

Buat baru Source dari ByteBuffer.

CreateSource(ContentResolver, Uri)

Buat baru Source dari android.net.Uri.

CreateSource(File)

Buat baru Source dari file.

CreateSource(ICallable)

Buat baru Source dari yang dapat dipanggil yang mengembalikan AssetFileDescriptor.

CreateSource(Resources, Int32)

Buat baru Source dari sumber daya.

DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Lihat #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeBitmap(ImageDecoder+Source)

Lihat #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Lihat #decodeDrawable(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source)

Lihat #decodeDrawable(Source, OnHeaderDecodedListener).

Dispose()

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
Dispose(Boolean)

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
DisposeUnlessReferenced()

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

(Diperoleh dari JavaObject)
Equals(Object)

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

(Diperoleh dari JavaObject)
Equals(Object)

Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini.

(Diperoleh dari Object)
GetHashCode()

Mengembalikan nilai kode hash untuk objek .

(Diperoleh dari Object)
IsMimeTypeSupported(String)

Mengembalikan jika jenis MIME yang diberikan adalah format file yang didukung yang dapat didekodekan oleh kelas ini.

JavaFinalize()

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek.

(Diperoleh dari Object)
Notify()

Membangunkan satu utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
NotifyAll()

Membangunkan semua utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
SetHandle(IntPtr, JniHandleOwnership)

Mengatur properti Handle.

(Diperoleh dari Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

(Diperoleh dari JavaObject)
SetTargetColorSpace(ColorSpace)

Tentukan yang diinginkan ColorSpace untuk output.

SetTargetSampleSize(Int32)

Atur ukuran target dengan sampleSize.

SetTargetSize(Int32, Int32)

Tentukan ukuran output Drawable atau Bitmap.

ToArray<T>()

Membuat array terkelola dari pembungkus array Java ini.

(Diperoleh dari Object)
ToString()

Mengembalikan representasi string objek.

(Diperoleh dari Object)
UnregisterFromRuntime()

Membatalkan pendaftaran peer Java ini dari runtime interop.

(Diperoleh dari Object)
Wait()

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>.

(Diperoleh dari Object)
Wait(Int64, Int32)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu.

(Diperoleh dari Object)
Wait(Int64)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu.

(Diperoleh dari Object)

Acara

Nama Deskripsi
PartialImage

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IJavaPeerable.Disposed()

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

(Diperoleh dari JavaObject)
IJavaPeerable.Finalized()

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

(Diperoleh dari JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

(Diperoleh dari JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

(Diperoleh dari JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

Metode Ekstensi

Nama Deskripsi
GetJniTypeName(IJavaPeerable)

Mendapatkan nama JNI dari jenis instans self.

JavaAs<TResult>(IJavaPeerable)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Android.

JavaCast<TResult>(IJavaObject)

Kelas untuk mengonversi gambar yang dikodekan (seperti PNG, , JPEG, WEBPGIF, atau HEIF) ke dalam Drawable atau Bitmap objek.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

Berlaku untuk