8

ビットマップ画像をトリミングする必要があります。このために、私は使用しています

Bitmap bitmap = Bitmap.createBitmap(imgView.getWidth(),imgView.getHeight(), Bitmap.Config.RGB_565);
Bitmap result =Bitmap.createBitmap(bitmap,imgView.getLeft()+10, imgView.getTop()+50, imgView.getWidth()-20, imgView.getHeight()-100);
bitmap.recycle();
Canvas canvas = new Canvas(result);
imgView.draw(canvas);

ただし、ビットマップの下部と右側がカットされます。ビットマップの上部と左側の部分が出力に存在します。つまり、x と y の位置は影響しません。

私は良いドキュメントを探しています。しかし、私はできませんでした。

前もって感謝します

ここで何が問題で、どうすれば解決できますか?

4

1 に答える 1

13

基本的に、問題はビットマップを作成するという事実から発生します。あなたはそれに何も入れません。次に、小さいビットマップを作成してから、imageViewをその小さいビットマップにレンダリングします。

これにより、下の100ピクセルと右の20ピクセルが切り取られます。

大きなビットマップを作成する必要があります。そのビットマップにimageviewデータを追加します。次に、サイズを変更します。

次のコードが機能するはずです。

Bitmap bitmap = Bitmap.createBitmap(imgView.getWidth(),imgView.getHeight(), Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
imgView.draw(canvas);
Bitmap result =Bitmap.createBitmap(bitmap,imgView.getLeft()+10, imgView.getTop()+50, imgView.getWidth()-20, imgView.getHeight()-100);
bitmap.recycle();
于 2012-10-12T09:27:13.593 に答える