您好我正在开发一个很好的Android应用程序,我需要将大位图适合小尺寸imageview
。我使用大小 300dp X 300dp 的imageview
来显示大图 1024 X 780
如何将大图像制作成与原始图像一样好的小图像?
答案 0 :(得分:9)
试试这个:
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);
然后设置调整大小的图像:
image.setImageBitmap(bmResized);
答案 1 :(得分:0)
您是否尝试过im.setScaleType(ScaleType.FIT_XY)
答案 2 :(得分:0)
@Nikola评论回答了我的问题。我在答案中写这篇文章,这对未来的读者有好处
您应制作尺寸为300x300的缩略图,但保留其宽高比。您可以在画布上绘制较大的图像,并以填充剩余空间的颜色为中心。