ImageDecoder Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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) -> {
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) -> {
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;
});
});
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) -> {
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 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.
|
| AllocatorSharedMemory |
Kedaluwarsa.
Gunakan memori bersama untuk memori piksel. |
| AllocatorSoftware |
Kedaluwarsa.
Gunakan alokasi perangkat lunak untuk memori piksel. |
| MemoryPolicyDefault |
Kedaluwarsa.
Gunakan yang paling alami |
| MemoryPolicyLowRam |
Kedaluwarsa.
Hemat memori jika memungkinkan dengan menggunakan yang lebih |
Properti
| Nama | Deskripsi |
|---|---|
| Allocator |
Mengembalikan alokator untuk memori piksel. -or- Pilih backing untuk memori piksel. |
| Class |
Mengembalikan kelas runtime dari . |
| Crop |
Mengembalikan persegi panjang pemotongan, jika diatur. -atau- Pangkas output ke |
| 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 |
| JniPeerMembers |
Kelas untuk mengonversi gambar yang dikodekan (seperti |
| MemorySizePolicy |
Ambil kebijakan memori untuk yang didekodekan |
| MutableRequired |
Mengembalikan apakah dekode |
| OnPartialImageListener |
Atur |
| PeerReference |
Mendapatkan referensi objek JNI untuk peer Java ini. (Diperoleh dari Object) |
| PostProcessor |
Mengembalikan set yang |
| 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 |
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 |
| CreateSource(AssetManager, String) |
Buat baru |
| CreateSource(Byte[], Int32, Int32) |
Buat baru |
| CreateSource(Byte[]) |
Buat baru |
| CreateSource(ByteBuffer) |
Buat baru |
| CreateSource(ContentResolver, Uri) |
Buat baru |
| CreateSource(File) |
Buat baru |
| CreateSource(ICallable) |
Buat baru |
| CreateSource(Resources, Int32) |
Buat baru |
| DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Lihat |
| DecodeBitmap(ImageDecoder+Source) |
Lihat |
| DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
Lihat |
| DecodeDrawable(ImageDecoder+Source) |
Lihat |
| 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 |
| Equals(Object) |
Kelas untuk mengonversi gambar yang dikodekan (seperti |
| 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 |
| SetTargetColorSpace(ColorSpace) |
Tentukan yang diinginkan |
| SetTargetSampleSize(Int32) |
Atur ukuran target dengan sampleSize. |
| SetTargetSize(Int32, Int32) |
Tentukan ukuran output |
| 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 |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IJavaPeerable.Disposed() |
Kelas untuk mengonversi gambar yang dikodekan (seperti |
| IJavaPeerable.Finalized() |
Kelas untuk mengonversi gambar yang dikodekan (seperti |
| IJavaPeerable.JniObjectReferenceControlBlock |
Kelas untuk mengonversi gambar yang dikodekan (seperti |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Kelas untuk mengonversi gambar yang dikodekan (seperti |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Kelas untuk mengonversi gambar yang dikodekan (seperti |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Kelas untuk mengonversi gambar yang dikodekan (seperti |
| IJavaPeerable.UnregisterFromRuntime() |
Kelas untuk mengonversi gambar yang dikodekan (seperti |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Mendapatkan nama JNI dari jenis instans |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Kelas untuk mengonversi gambar yang dikodekan (seperti |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |