1

私は知っています - タイトルは奇妙に聞こえるかもしれません. 説明させてください:

私が話していることを示すために画像を作成しました: 問題

150w/200h のサイズの画像 (ビットマップ (1)) を取得しました。

ここで、ビットマップを大きくする必要があります ((2) 400w/400h) が、元のイメージは同じサイズである必要があります。画像が白い背景に埋め込まれます。

それを解決する 1 つの方法は次のとおりだと思います: * 大きなビットマップを作成する * そのためのキャンバスを作成する * キャンバスに元のビットマップを描画する * キャンバスを描画する * キャンバスのビットマップを生成する

私にとっての問題は、ビューを描画せずにバックグラウンド スレッドで実行する必要があることです。あなたが私を理解してくれることを願っています。

4

2 に答える 2

6

以下のコードを使用して達成できます。smallBitmap元の画像はどこにbigBitmapあり、最終的な画像は次のとおりです。

Bitmap bigBitmap = Bitmap.createBitmap(width, height , Bitmap.Config.ARGB_8888);
canvas = new Canvas(bigBitmap);
canvas.drawBitmap(smallBitmap, left, top, new Paint());

よろしく。

于 2012-11-13T16:37:53.780 に答える
0

これでうまくいくはずです。

  1. スレッドを作成し、そのスレッド オブジェクトで:
  2. 新しいビットマップを作成します。
  3. そのビットマップに基づいてキャンバスを作成します。
  4. そのキャンバスにビットマップを描画します

そして出来上がり!

これが役立つことを願っています。

于 2012-11-13T16:13:17.600 に答える