私はImageView
から派生したクラスを持っています。 onDraw
メソッドのオーバーライドでは、ビューの内容をビットマップにコピーする必要があります。コピーには、目に見える部分だけでなく内容全体を含める必要があります。Viewのコンテンツのサイズを取得する方法
これを達成するには、ビットマップを作成し、super.onDraw
を呼び出して、このビットマップのキャンバスをパラメータとして渡します。私は結果のビットマップをonDraw
が渡されたキャンバスに描画します。コードは以下の通りです。
私の質問は、私のビットマップの大きさはどれくらいですか?現在、私はgetWidth()
とgetHeight()
をビットマップのディメンションとして使用しています。しかし、これは、内容のサイズではなくビューのサイズを返すため、機能しません。ビューのscaleType
に従って、ドロウアブルのサイズを変更した後のコンテンツのサイズを取得する方法を探しています。
ドロアブルが内容の寸法と異なる可能性があるため、ドロアブルのサイズが機能しません。
@Override
public void onDraw(Canvas canvas)
{
if (_bitmap == null)
{
final int w = getWidth();
final int h = getHeight();
_bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
_canvas = new Canvas(_bitmap);
super.onDraw(_canvas);
}
canvas.drawBitmap(_bitmap, 0, 0, null);
}
何が質問ですか?コードは動作していませんか? – noob
質問を編集してタイトルを変更しました – akonsu