2015-02-18 3 views
0

Я создаю игру-головоломку, и я использую маску для создания головоломок. Благодаря экспериментам я узнал, что если растровое изображение маски не такое же, как и растровое изображение, которое может быть замаскировано, результат «может» быть чем-то от ожидаемой. Конфликт, с которым я сталкиваюсь, заключается в том, что при попытке изменить размер изображения маски равным размеру головоломки, поскольку кусочки головоломки являются рандомизированными размерами в зависимости от количества штук и уровня сложности и т. Д., Замаскированное изображение теряет форму и превращается в квадрат или прямоугольник.Как установить замаскированное изображение в размер растрового изображения для маскировки?

Я использую матричную функцию, чтобы изменить размер моей маску растрового как этого

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 больше не форма головоломки, это квадрат или прямоугольник. Поэтому, даже когда я маскирую это изображение, он просто создает квадраты. Альтернативой было бы изменить размеры кусочков головоломки до набора замаскированных изображений, но я хотел знать, есть ли способ изменить размер маскированного растрового изображения (сохраняя форму головоломки)? Заранее спасибо!

ответ

1

Попробуйте использовать эту функцию и посмотреть, если он работает:

общественный статический Bitmap createScaledBitmap (Bitmap ЦСИ, внутр dstWidth, внутр dstHeight, логический фильтр)

Ссылка на документацию: http://developer.android.com/reference/android/graphics/Bitmap.html#createScaledBitmap(android.graphics.Bitmap, Int, Int, boolean)

+0

Отлично! Это сработало, понравилось очарование! – portfoliobuilder