こんにちは私は、大きなビットマップを小さなサイズに合わせる必要がある1つの優れたAndroidアプリに取り組んでいますimageview
。大きな画像1024 X 780imageview
を表示するためにサイズ300dp X 300dpを使用しています
元の画像と同じ品質で大きな画像を小さくするにはどうすればよいですか?
こんにちは私は、大きなビットマップを小さなサイズに合わせる必要がある1つの優れたAndroidアプリに取り組んでいますimageview
。大きな画像1024 X 780imageview
を表示するためにサイズ300dp X 300dpを使用しています
元の画像と同じ品質で大きな画像を小さくするにはどうすればよいですか?
これを試して :
public static Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// CREATE A MATRIX FOR THE MANIPULATION
Matrix matrix = new Matrix();
// RESIZE THE BIT MAP
matrix.postScale(scaleWidth, scaleHeight);
// RECREATE THE NEW BITMAP
Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height,
matrix, false);
return resizedBitmap;
}
使いやすい :
Bitmap bmResized=getResizedBitmap(yourBitmap,newHeight,newWidth);
そして、サイズ変更された画像を取得します
注:リソース イメージのサイズを変更する場合は、これを使用してビットマップに変換します。
Bitmap bmOrginal=BitmapFactory.decodeResource(this.getResources(), R.drawble.yourRes);
Bitmap bmResized=getResizedBitmap(bmOrginal,newHeight,newWidth);
次に、Resized Image を設定します。
image.setImageBitmap(bmResized);
@ニコラコメントが私の質問に答えました。将来の読者に役立つように、これを回答に書いています
サイズ 300x300 のサムネイル画像を作成する必要がありますが、縦横比は維持されます。残りのスペースを塗りつぶす色で中央に配置されたキャンバスに、より大きな画像を描くことができます。
試しましたかim.setScaleType(ScaleType.FIT_XY)