Я создаю игру-головоломку, и я использую маску для создания головоломок. Благодаря экспериментам я узнал, что если растровое изображение маски не такое же, как и растровое изображение, которое может быть замаскировано, результат «может» быть чем-то от ожидаемой. Конфликт, с которым я сталкиваюсь, заключается в том, что при попытке изменить размер изображения маски равным размеру головоломки, поскольку кусочки головоломки являются рандомизированными размерами в зависимости от количества штук и уровня сложности и т. Д., Замаскированное изображение теряет форму и превращается в квадрат или прямоугольник.Как установить замаскированное изображение в размер растрового изображения для маскировки?
Я использую матричную функцию, чтобы изменить размер моей маску растрового как этого
public static Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = (float) newWidth/width;
float scaleHeight = (float) newHeight/height;
// create a matrix for the manipulation
Matrix matrix = new Matrix();
// resize the bitmap
matrix.postScale(scaleWidth, scaleHeight);
// recreate the bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
return resizedBitmap;
}
Это returnedBitmap больше не форма головоломки, это квадрат или прямоугольник. Поэтому, даже когда я маскирую это изображение, он просто создает квадраты. Альтернативой было бы изменить размеры кусочков головоломки до набора замаскированных изображений, но я хотел знать, есть ли способ изменить размер маскированного растрового изображения (сохраняя форму головоломки)? Заранее спасибо!
Отлично! Это сработало, понравилось очарование! – portfoliobuilder