Java Android - работа с масштабированием изображения / обрезка программно
Что ж, все это мучает меня долгие недели, я установил для Image 227 пикселей в высоту его масштаб до 170 пикселей, даже если я хочу, чтобы он всегда был wrap_content.
Хорошо. Здесь я беру мое изображение длиной 1950 пикселей (я привожу здесь его часть, чтобы вы могли понять, как оно должно выглядеть).
Во-первых, я хочу уменьшить его до 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 (Растровое изображение); и imageView.setBackgroundDrawable (drawable); устарели - как я могу это изменить?