81

グーグルで検索しましたが、Androidのビットマップとドローアブルの違いについて説明する記事が見つかりませんでした。

4

4 に答える 4

75

ビットマップは、ビットマップイメージ(java.awt.Imageのようなもの)の表現です。Drawableは、「描画できるもの」を抽象化したものです。それはビットマップ(としてまとめられているBitmapDrawable)である可能性がありますが、単色、他のDrawableオブジェクトのコレクション、または他の任意の数の構造である可能性もあります。

Android UIフレームワークのほとんどは、ビットマップオブジェクトではなく、Drawableオブジェクトを操作するのが好きです。ビューは、任意のDrawableを背景として受け入れることができます。ImageViewは、前景のDrawableを表示できます。リソースとして保存された画像は、Drawableオブジェクトとしてロードされます。

于 2012-01-20T05:21:54.197 に答える
40

Drawableは描くことができるものです。例:レイアウト、ベクター画像(線、円)、フォント、画像など

ビットマップ-PNG、JPEGなどの画像である特定のタイプのDrawableです

于 2012-01-20T05:22:11.873 に答える
39

ビットマップは画像ではありません。ビットマップはビットのマップです(注名:ビットマップ)。そして、このマップは、何かを描くことができるピクセルを表しています。正方形など、独自のカスタムビットマップ(画像ではない)の場合があります。

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
于 2018-06-03T03:33:26.067 に答える
14

ドローアブルリソース

Drawableリソースは、画面に描画でき、などのAPIを使用して取得したり、やなどの属性を持つ別のXMLリソースに適用したりできるグラフィックの一般的なgetDrawable(int)概念です。ドローアブルにはいくつかの種類があります。android:drawableandroid:icon

  • ビットマップファイル(ビットマップグラフィックファイル(.png、.jpg、または.gif))は、を作成しBitmapDrawableます。

  • ナインパッチファイルPNGコンテンツ(.9.png)に基づいて画像のサイズ変更を可能にする伸縮可能な領域を持つファイルは、を作成しNinePatchDrawableます。

  • レイヤーリスト、他のDrawable配列を管理するA。Drawableこれらは配列順に描画されるため、インデックスが最大の要素が上に描画され、が作成されますLayerDrawable

  • 状態リストXMLさまざまな状態のさまざまなビットマップグラフィックスを参照するファイル(たとえば、ボタンが押されたときに別の画像を使用するため)は、を作成しStateListDrawableます。

  • レベルリスト、それぞれが最大数値を割り当てられた多数の代替を管理するXMLを定義するファイルは、を作成します。DrawableDrawableLevelListDrawable

  • Transition Drawable、 2つのリソース間でクロスフェードできるXMLを定義するファイルは、を作成します。DrawableDrawableTransitionDrawable

  • Inset Drawable、指定された距離だけ別のを挿入XMLするを定義するファイル。これは、ビューの実際の境界よりも小さい背景が必要な場合に役立ちます。DrawableDrawableViewDrawble

  • Clip Drawable、このの現在のレベル値に基づいて別のをクリップXMLするを定義するファイルは、を作成します。DrawableDrawableDrawableClipDrawable

  • Scale Drawable、現在のレベル値に基づいて別のサイズを変更するXMLを定義するファイルは、を作成します。DrawableDrawableScaleDrawable

  • Shape DrawableXML色やグラデーションなどの幾何学的形状を定義するファイルは、を作成しShapeDrawableます。

の作成方法については、アニメーションリソースのドキュメントも参照してくださいAnimationDrawable

注:カラーリソースは、Ddrawableでとして使用することもできますXML。たとえば、を作成するときに、属性( )StateListDrawableのカラーリソースを参照できます。android:drawableandroid:drawable="@color/green"

ビットマップ

ビットマップ画像。Androidは、.png(推奨)、. jpg(許容)、. gif(非推奨)の3つの形式のビットマップファイルをサポートしています。

ファイル名をリソースIDとして使用して、ビットマップファイルを直接参照するか、XMLでエイリアスリソースIDを作成できます。

注:ビットマップファイルは、ビルドプロセス中にaaptツールによるロスレス画像圧縮で自動的に最適化される場合があります。たとえば、256色を超えないトゥルーカラーPNGは、カラーパレットを使用して8ビットPNGに変換できます。これにより、同等の品質の画像が得られますが、必要なメモリは少なくなります。したがって、このディレクトリに配置されたイメージバイナリは、ビルド中に変更される可能性があることに注意してください。画像をビットストリームとして読み取ってビットストリームに変換する場合は、res/raw/代わりに画像をフォルダに入れてください。最適化されません。

于 2015-03-28T16:13:19.520 に答える