问题描述
- 如何重新设置bimpat的大小?
- 在我的程序中我需要重新设置 bitmap的大小,设置成imageview的大小,下面的代码报错了,如何改正,重新设置 bitmap的大小?
Bitmap bmp = Bitmap.createBitmap(bmp 0 0 bmp.getWidth() bmp.getHeight() aMatrix false);Bitmap.createScaledBitmap(bmp MyImageview_wt MyImageview_ht false);MyImageview.setImageBitmap(bmp);
解决方案
使用下面的代码试试:
public static Bitmap resizeBitMapImage1(String filePath int targetWidth int targetHeight) { Bitmap bitMapImage = null; // First get the dimensions of the image Options options = new Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(filePath options); double sampleSize = 0; // Only scale if we need to // (16384 buffer for img processing) Boolean scaleByHeight = Math.abs(options.outHeight - targetHeight) >= Math .abs(options.outWidth - targetWidth); if (options.outHeight * options.outWidth * 2 >= 1638) { // Load scaling to smallest power of 2 that'll get it <= desired // dimensions sampleSize = scaleByHeight ? options.outHeight / targetHeight : options.outWidth / targetWidth; sampleSize = (int) Math.pow(2d Math.floor(Math.log(sampleSize) / Math.log(2d))); } // Do the actual decoding options.inJustDecodeBounds = false; options.inTempStorage = new byte[128]; while (true) { try { options.inSampleSize = (int) sampleSize; bitMapImage = BitmapFactory.decodeFile(filePath options); break; } catch (Exception ex) { try { sampleSize = sampleSize * 2; } catch (Exception ex1) { } } } return bitMapImage; }
解决方案二:
public static Bitmap createBitmap (Bitmap source int x int y int width int height Matrix m boolean filter)
第一个参数是个资源图片,直接用bmp哪有图片
这是高级方式裁剪图片
解决方案三:
http://blog.csdn.net/tf576776047/article/details/8143456 看一下
时间: 2024-09-30 10:21:07