ImageDecoder クラス

定義

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を 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
属性
実装

注釈

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

これを使用するには、まず、createSourceオーバーロードのいずれかを使用してSource Sourceを作成します。 たとえば、 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)に渡します。 たとえば、元のイメージの幅と高さの半分のサンプリングされたイメージを作成するには、OnHeaderDecodedListener#onHeaderDecoded onHeaderDecoded内で#setTargetSampleSize setTargetSampleSize(2)を呼び出します。

OnHeaderDecodedListener listener = new OnHeaderDecodedListener() {
                 public void onHeaderDecoded(ImageDecoder decoder, ImageInfo info, Source source) {
                     decoder.setTargetSampleSize(2);
                 }
             };
             Drawable drawable = ImageDecoder.decodeDrawable(source, listener);

ImageInfo ImageInfoには、エンコードされたイメージに関する情報 (幅や高さなど) が含まれており、1 つのOnHeaderDecodedListener OnHeaderDecodedListenerが複数のSource Source オブジェクトで使用されている場合、Source Sourceを使用して特定のSource Sourceに一致させることができます。

OnHeaderDecodedListener OnHeaderDecodedListenerはラムダとして実装することもできます。

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

エンコードされたイメージがアニメーション化された GIF または WEBPの場合、 #decodeDrawable decodeDrawableAnimatedImageDrawableを返します。 アニメーションを開始するには、 AnimatedImageDrawable#start AnimatedImageDrawable.start()を呼び出します。

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

既定では、ImageDecoderによって作成されたBitmap (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) -&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ドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

フィールド

名前 説明
AllocatorDefault
古い.

ピクセル メモリの既定の割り当てを使用します。

AllocatorHardware
古い.

Bitmap.Config#HARDWARE Bitmapが必要です。

AllocatorSharedMemory
古い.

ピクセル メモリに共有メモリを使用します。

AllocatorSoftware
古い.

ピクセル メモリにソフトウェア割り当てを使用します。

MemoryPolicyDefault
古い.

内部Bitmapには、最も自然なBitmap.Configを使用します。

MemoryPolicyLowRam
古い.

可能であれば、ある程度の画質を犠牲にして、より高密度の Bitmap.Config を使用してメモリを節約します。

プロパティ

名前 説明
Allocator

ピクセル メモリのアロケーターを返します。 または、ピクセル メモリのバッキングを選択します。

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Crop

トリミングする四角形 (設定されている場合) を返します。 または、(場合によっては) スケーリングされたイメージの subset に出力をトリミングします。

DecodeAsAlphaMaskEnabled

単一チャネル入力をアルファとして扱うかどうかを返します。 または、出力をアルファ マスクとして扱う可能性があるかどうかを指定します。

Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
JniPeerMembers

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

MemorySizePolicy

デコードされた Bitmapのメモリ ポリシーを取得します。 または、デコードされた Bitmapのメモリ ポリシーを指定します。

MutableRequired

デコードされた Bitmap が変更可能かどうかを返します。 または、 Bitmap を変更可能にするかどうかを指定します。

OnPartialImageListener

このオブジェクトの OnPartialImageListener を設定 (置換) します。

PeerReference

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
PostProcessor

現在設定されている PostProcessor を返します。 または、デコードとスケーリングの後にイメージを変更します。

ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)
ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)
UnpremultipliedRequired

Bitmapに未乗算ピクセルが含まれるかどうかを返します。 または、 Bitmap に未乗算ピクセルを含めるかどうかを指定します。

メソッド

名前 説明
Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Close()

基になるリソースを放棄して、このリソースを閉じます。

CreateSource(AssetManager, String)

android.net.Uriから新しいSourceを作成します。

CreateSource(Byte[], Int32, Int32)

android.net.Uriから新しいSourceを作成します。

CreateSource(Byte[])

android.net.Uriから新しいSourceを作成します。

CreateSource(ByteBuffer)

android.net.Uriから新しいSourceを作成します。

CreateSource(ContentResolver, Uri)

android.net.Uriから新しいSourceを作成します。

CreateSource(File)

android.net.Uriから新しいSourceを作成します。

CreateSource(ICallable)

android.net.Uriから新しいSourceを作成します。

CreateSource(Resources, Int32)

android.net.Uriから新しいSourceを作成します。

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

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
Dispose(Boolean)

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
IsMimeTypeSupported(String)

指定された MIME の種類が、このクラスでデコードできるサポートされているファイル形式である場合に返します。

JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetTargetColorSpace(ColorSpace)

出力に必要な ColorSpace を指定します。

SetTargetSampleSize(Int32)

sampleSize を使用してターゲット サイズを設定します。

SetTargetSize(Int32, Int32)

出力 Drawable または Bitmapのサイズを指定します。

ToArray<T>()

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

イベント

名前 説明
PartialImage

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
IJavaPeerable.Finalized()

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

(継承元 Object)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

エンコードされたイメージ ( PNGJPEGWEBPGIFHEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象