android – 如何剪切图像的一部分,并在imageview中显示它

我只想在imageview中显示图像的一部分。 见下图。 图像部分

同样的例子可以在谷歌+应用程序中find所有post的图像。

任何链接,代码都会有帮助。 谢谢

Solutions Collecting From Web of "android – 如何剪切图像的一部分,并在imageview中显示它"

使用这个代码

int width = bitmapOrg.width(); int height = bitmapOrg.height(); int newWidth = 200; int newHeight = 200; // calculate the scale - in this case = 0.4f float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; // createa matrix for the manipulation Matrix matrix = new Matrix(); // resize the bit map matrix.postScale(scaleWidth, scaleHeight); // recreate the new Bitmap Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, width, height, matrix, true); // make a Drawable from Bitmap to allow to set the BitMap // to the ImageView, ImageButton or what ever BitmapDrawable bmd = new BitmapDrawable(resizedBitmap); ImageView imageView = new ImageView(this); // set the Drawable on the ImageView imageView.setImageDrawable(bmd); 
 // Set some constants private static final Bitmap SOURCE_BITMAP = BitmapFactory.decodeFile(....); // Get the source Bitmap using your favorite method :-) private static final int START_X = 10; private static final int START_Y = 15; private static final int WIDTH_PX = 100; private static final int HEIGHT_PX = 100; // Crop bitmap Bitmap newBitmap = Bitmap.createBitmap(SOURCE_BITMAP, START_X, START_Y, WIDTH_PX, HEIGHT_PX, null, false); // Assign new bitmap to ImageView ImageView image = (ImageView)findViewById(R.id.image_view); image.setImageBitmap(newBitmap); 

如果有人正在从底部切割图像

 // recreate the new Bitmap Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, x, y, width, height, matrix, true); 

用这个逻辑replace下面的参数

y:(bitmapOrg.getHeight() – 1) – (问题中存在的红色框的高度)

身高:(问题中的红色框的高度)

这样你可以避免例外的情况(对于x,你需要相应的修改)

 IllegalArgumentException: x + width must be <= bitmap.width() in android IllegalArgumentException: y + width must be <= bitmap.height() in android