好吧,所有这一切都折磨了我好几个星期,我设置了一个 227 像素高的图像,将其缩放到 170 像素,即使我希望它是 wrap_content 每当我这样做的时候。
行。在这里,我拍摄了 1950 像素长的 My Image(我将其中的一部分放在这里,以便您了解它的外观)。
首先,我想将其缩放回 227 像素高,因为这就是它的设计方式和应该如何
Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.ver_bottom_panel_tiled_long);
int width = bitmapOrg.getWidth();
int height = bitmapOrg.getHeight();
int newWidth = 200; //this should be parent's whdth later
int newHeight = 227;
// calculate the scale
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(bitmapOrg, 0, 0,
width, height, matrix, true);
BitmapDrawable dmpDrwbl=new BitmapDrawable(resizedBitmap);
verbottompanelprayer.setBackgroundDrawable(dmpDrwbl);
所以...它根本不是裁剪图像 - 不,它是 1950 像素压入 200 像素。
但我只想剪除这 200 像素或我将设置的任何宽度之外的任何东西 - 裁剪它,而不是将所有这些长图像压入 200 像素区域。
还有,BitmapDrawable(Bitmap bitmap); 和 imageView.setBackgroundDrawable(drawable); 已弃用 - 我该如何更改?