Учитывая изображение, я хочу иметь возможность масштабировать только часть этого изображения. Скажем, я хочу расширить половину изображения, чтобы эта половина занимала все пространство.Android: изменение размера и масштабирование части изображения
Как это возможно?
Будет ли ImageView fitXY работать, потому что я думал, что он будет работать только для всего оригинального изображения.
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout linearLayout = new LinearLayout(this);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int newWidth = 640;
int newHeight = 480;
float scaleWidth = ((float) newWidth)/width;
float scaleHeight = ((float) newHeight)/height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
// create the new Bitmap object
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 50, 50, width,
height, matrix, true);
BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);
ImageView imageView = new ImageView(this);
imageView.setImageDrawable(bmd);
imageView.setScaleType(ScaleType.CENTER);
linearLayout.addView(imageView, new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
setContentView(linearLayout);
}
}
Это работает только если в CreateBitmap, то X и Y координата первых пикселов в источнике равна 0. Значение, я не в состоянии взять подмножество изображения. Только возможность масштабирования всего изображения. Но createBitmap предназначен для подмножества изображения.
В журнале, когда параметры не равны 0, я получаю следующее исключение: java.lang.IllegalArgumentException: х + ширина должна быть < = bitmap.width()
Пожалуйста, помогите