ImageDecoder クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
エンコードされたイメージ (たとえばPNG
、、JPEG
、GIF
WEBP
または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
、GIF
WEBP
またはHEIF
) をオブジェクトにDrawable
Bitmap
変換するためのクラス。
これを使用するには、最初にいずれかのオーバーロードを 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 Source
のSource Source
オブジェクトで使用されている場合は、特定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();
}
既定では、 Bitmap
(内部にあるものも含む) によって ImageDecoder
作成されたオブジェクトは Drawable
不変 (つまり Bitmap#isMutable Bitmap.isMutable()
、戻り値 false
) になり、通常 Config
Bitmap.Config#HARDWARE
は . これらのプロパティは(とのみ互換性があります#decodeBitmap(Source)
#decodeBitmap(Source, OnHeaderDecodedListener)
)#setAllocator
で変更#setMutableRequired setMutableRequired(true)
することができますが、最後に返されたオブジェクトの変更可能性に関係なく、カスタム効果を#setPostProcessor setPostProcessor
適用PostProcessor
することもできます。 A 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
は、a 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 オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
フィールド
AllocatorDefault |
古い.
ピクセル メモリの既定の割り当てを使用します。 |
AllocatorHardware |
古い.
必要な . |
AllocatorSharedMemory |
古い.
ピクセル メモリには共有メモリを使用します。 |
AllocatorSoftware |
古い.
ピクセル メモリにソフトウェア割り当てを使用します。 |
MemoryPolicyDefault |
古い.
内部 |
MemoryPolicyLowRam |
古い.
可能であれば、ある程度の画質を犠牲にして高密度 |
プロパティ
Class |
この |
Crop |
トリミングする四角形 (設定されている場合) を返します。 または、(場合によっては) 拡大縮小されたイメージの出力 |
DecodeAsAlphaMaskEnabled |
単一チャネル入力をアルファとして扱うかどうかを返します。 または、出力をアルファ マスクとして扱う可能性があるかどうかを指定します。 |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
JniIdentityHashCode |
エンコードされたイメージ (たとえば |
JniPeerMembers |
エンコードされたイメージ (たとえば |
MemorySizePolicy |
デコードされた |
MutableRequired |
デコードされた |
OnPartialImageListener |
このオブジェクトを |
PeerReference |
エンコードされたイメージ (たとえば |
PostProcessor |
現在のセットを |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 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() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
SetTargetColorSpace(ColorSpace) |
出力に必要 |
SetTargetSampleSize(Int32) |
sampleSize を使用してターゲット サイズを設定します。 |
SetTargetSize(Int32, Int32) |
出力 |
ToArray<T>() |
エンコードされたイメージ (たとえば |
ToString() |
オブジェクトの文字列表現を返します。 (継承元 Object) |
UnregisterFromRuntime() |
エンコードされたイメージ (たとえば |
Wait() |
現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</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) |
エンコードされたイメージ (たとえば |