将大图像适合小图像视图,质量与原始图像一样好?

时间:2012-10-09 16:12:03

标签: android android-imageview

您好我正在开发一个很好的Android应用程序,我需要将大位图适合小尺寸imageview。我使用大小 300dp X 300dp imageview来显示大图 1024 X 780

如何将大图像制作成与原始图像一样好的小图像?

3 个答案:

答案 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的缩略图,但保留其宽高比。您可以在画布上绘制较大的图像,并以填充剩余空间的颜色为中心。