グーグルで検索しましたが、Androidのビットマップとドローアブルの違いについて説明する記事が見つかりませんでした。
4 に答える
ビットマップは、ビットマップイメージ(java.awt.Imageのようなもの)の表現です。Drawableは、「描画できるもの」を抽象化したものです。それはビットマップ(としてまとめられているBitmapDrawable
)である可能性がありますが、単色、他のDrawableオブジェクトのコレクション、または他の任意の数の構造である可能性もあります。
Android UIフレームワークのほとんどは、ビットマップオブジェクトではなく、Drawableオブジェクトを操作するのが好きです。ビューは、任意のDrawableを背景として受け入れることができます。ImageViewは、前景のDrawableを表示できます。リソースとして保存された画像は、Drawableオブジェクトとしてロードされます。
Drawableは描くことができるものです。例:レイアウト、ベクター画像(線、円)、フォント、画像など
ビットマップ-PNG、JPEGなどの画像である特定のタイプのDrawableです
ビットマップは画像ではありません。ビットマップはビットのマップです(注名:ビットマップ)。そして、このマップは、何かを描くことができるピクセルを表しています。正方形など、独自のカスタムビットマップ(画像ではない)の場合があります。
Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
または、画像からビットマップオブジェクトを作成できます。
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image);
ビットマップはピクセルホルダーです。また、Canvasは、ビットマップ(ビットマップピクセル)に何かを描画するために使用されます。
Drawableについてのすべては上でよく説明されています。
TL; DR
キャンバスに描いたと書く人もいます。Canvasには描画しません。Canvasヘルパーメソッドを使用してビットマップピクセルに描画します。
Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.RED) // now all bitmap pixels became red
ドローアブルリソース
Drawable
リソースは、画面に描画でき、などのAPIを使用して取得したり、やなどの属性を持つ別のXMLリソースに適用したりできるグラフィックの一般的なgetDrawable(int)
概念です。ドローアブルにはいくつかの種類があります。android:drawable
android:icon
ビットマップファイル(ビットマップグラフィックファイル(.png、.jpg、または.gif))は、を作成し
BitmapDrawable
ます。ナインパッチファイル、
PNG
コンテンツ(.9.png)に基づいて画像のサイズ変更を可能にする伸縮可能な領域を持つファイルは、を作成しNinePatchDrawable
ます。レイヤーリスト、他の
Drawable
配列を管理するA。Drawable
これらは配列順に描画されるため、インデックスが最大の要素が上に描画され、が作成されますLayerDrawable
。状態リスト、
XML
さまざまな状態のさまざまなビットマップグラフィックスを参照するファイル(たとえば、ボタンが押されたときに別の画像を使用するため)は、を作成しStateListDrawable
ます。レベルリスト、それぞれが最大数値を割り当てられた多数の代替を管理する
XML
を定義するファイルは、を作成します。Drawable
Drawable
LevelListDrawable
Transition Drawable、 2つのリソース間でクロスフェードできる
XML
を定義するファイルは、を作成します。Drawable
Drawable
TransitionDrawable
Inset Drawable、指定された距離だけ別のを挿入
XML
するを定義するファイル。これは、ビューの実際の境界よりも小さい背景が必要な場合に役立ちます。Drawable
Drawable
View
Drawble
Clip Drawable、このの現在のレベル値に基づいて別のをクリップ
XML
するを定義するファイルは、を作成します。Drawable
Drawable
Drawable
ClipDrawable
Scale Drawable、現在のレベル値に基づいて別のサイズを変更する
XML
を定義するファイルは、を作成します。Drawable
Drawable
ScaleDrawable
Shape Drawable、
XML
色やグラデーションなどの幾何学的形状を定義するファイルは、を作成しShapeDrawable
ます。
の作成方法については、アニメーションリソースのドキュメントも参照してくださいAnimationDrawable
。
注:カラーリソースは、Ddrawable
でとして使用することもできますXML
。たとえば、を作成するときに、属性( )StateListDrawable
のカラーリソースを参照できます。android:drawable
android:drawable="@color/green"
ビットマップ
ビットマップ画像。Androidは、.png(推奨)、. jpg(許容)、. gif(非推奨)の3つの形式のビットマップファイルをサポートしています。
ファイル名をリソースIDとして使用して、ビットマップファイルを直接参照するか、XMLでエイリアスリソースIDを作成できます。
注:ビットマップファイルは、ビルドプロセス中にaaptツールによるロスレス画像圧縮で自動的に最適化される場合があります。たとえば、256色を超えないトゥルーカラーPNGは、カラーパレットを使用して8ビットPNGに変換できます。これにより、同等の品質の画像が得られますが、必要なメモリは少なくなります。したがって、このディレクトリに配置されたイメージバイナリは、ビルド中に変更される可能性があることに注意してください。画像をビットストリームとして読み取ってビットストリームに変換する場合は、res/raw/
代わりに画像をフォルダに入れてください。最適化されません。