次の方法で共有


ImageDecoder クラス

定義

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

[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
属性
実装

注釈

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

これを使用するには、最初にいずれかのオーバーロードを Source Source 使用して createSource 作成します。 たとえば、呼び出#createSource(ContentResolver, Uri)しからUriデコードし、結果を次の場所に#decodeDrawable(Source)#decodeBitmap(Source)渡します。

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

既定の設定を変更するには、 Source Source and to OnHeaderDecodedListener 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 SourceSource Sourceオブジェクトで使用されている場合は、特定Source Sourceのイメージとの照合に使用できます。

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

Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -&gt; {
                 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は . これらのプロパティは(とのみ互換性があります#decodeBitmap(Source)#decodeBitmap(Source, OnHeaderDecodedListener))#setAllocatorで変更#setMutableRequired setMutableRequired(true)することができますが、最後に返されたオブジェクトの変更可能性に関係なく、カスタム効果を#setPostProcessor setPostProcessor適用PostProcessorすることもできます。 A 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 は、a 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 ドキュメントandroid.graphics.ImageDecoder

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

フィールド

AllocatorDefault
古い.

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

AllocatorHardware
古い.

必要な .Bitmap.Config#HARDWAREBitmap

AllocatorSharedMemory
古い.

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

AllocatorSoftware
古い.

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

MemoryPolicyDefault
古い.

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

MemoryPolicyLowRam
古い.

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

プロパティ

Class

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

(継承元 Object)
Crop

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

DecodeAsAlphaMaskEnabled

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

Handle

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

(継承元 Object)
JniIdentityHashCode

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

(継承元 Object)
JniPeerMembers

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

MemorySizePolicy

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

MutableRequired

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

OnPartialImageListener

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

PeerReference

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

(継承元 Object)
PostProcessor

現在のセットを PostProcessor 返します。 または、デコードとスケーリングの後にイメージを変更します。

ThresholdClass

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

(継承元 Object)
ThresholdType

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

(継承元 Object)
UnpremultipliedRequired

プリ乗算されていないピクセルがあるかどうかを Bitmap 返します。 または、事前乗算されていないピクセルを Bitmap 含めるかどうかを指定します。

メソッド

Clone()

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

(継承元 Object)
Close()

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

CreateSource(AssetManager, String)

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

CreateSource(Byte[], Int32, Int32)

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

CreateSource(Byte[])

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

CreateSource(ByteBuffer)

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

CreateSource(ContentResolver, Uri)

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

CreateSource(File)

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

CreateSource(ICallable)

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

CreateSource(Resources, Int32)

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

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

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

(継承元 Object)
Dispose(Boolean)

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

(継承元 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>()

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

(継承元 Object)
ToString()

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

(継承元 Object)
UnregisterFromRuntime()

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

(継承元 Object)
Wait()

現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。

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

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

イベント

PartialImage

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

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

IJavaPeerable.Disposed()

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

(継承元 Object)
IJavaPeerable.Finalized()

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

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

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

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

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

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

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

GetJniTypeName(IJavaPeerable)

エンコードされたイメージ (たとえばPNG、、JPEGGIFWEBPまたはHEIF) をオブジェクトにDrawableBitmap変換するためのクラス。

適用対象