如何调整从URL解码的位图?

时间:2011-08-21 06:41:04

标签: android bitmap resize

我正在使用位图来使用此

从网址获取图片
public void loadImage(String url){
try {

       bitmap = BitmapFactory.decodeStream((InputStream)new URL(url).getContent());

    } catch (MalformedURLException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }

}

无论如何我可以从这里调整图像大小吗?设置它的宽度和高度仍然保持分辨率?

6 个答案:

答案 0 :(得分:7)

使用:Bitmap.createScaledBitmap(Bitmap src, int dstWidth, int dstHeight, boolean filter)

答案 1 :(得分:5)

你也可以尝试一下。

BitmapFactory.Options bmOptions = new BitmapFactory.Options();
bmOptions.inSampleSize = 1; // 1 = 100% if you write 4 means 1/4 = 25% 
bitmap = BitmapFactory.decodeStream((InputStream)new URL(url).getContent(),
                                                                   null, bmOptions);
bmImage.setImageBitmap(bitmap);

答案 2 :(得分:2)

也许这会对你有所帮助:

public 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;
}

答案 3 :(得分:1)

你可以使用Picasso(非常简单!):

Picasso.with(context).load(url).resize(10,10).into(imageView)

http://square.github.io/picasso/

答案 4 :(得分:0)

为什么不在XML中设置imageView的width和height属性?

我发现url中的图像会自动调整大小,以便它可以适合该imageView。

答案 5 :(得分:0)

我的应用程序中也需要类似功能。我在这里找到了最好的解决方案。

https://github.com/coomar2841/image-chooser-library/blob/dev/src/com/kbeanie/imagechooser/threads/MediaProcessorThread.java

您可能不需要所有这些功能,但在某些时候,这个人正在压缩/缩放位图。