如何将屏蔽图像设置为要屏蔽的位图大小?

时间:2015-02-18 02:13:34

标签: android bitmap resize-image

我正在创建一个拼图益智游戏,我正在使用面具来创建拼图游戏。通过实验,我了解到如果掩模位图的大小与要掩盖的位图的大小不同,则结果“可能”与预期的形状不同。我遇到的冲突是,当试图将掩模图像的大小调整为等于拼图拼图的大小时,因为拼图拼图是随机大小,取决于多少块和难度等等,蒙面图像会失去形状和变成正方形或矩形。

我正在使用矩阵函数调整我的掩码位图,就像这样

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;
}

返回的地图不再是拼图形状,而是方形或矩形。因此,即使我用该图像进行遮罩,它也会创建正方形。另一种方法是将拼图块调整为一组蒙版图像,但我想知道是否有一种方法可以调整蒙版位图的大小(保留拼图形状)?提前谢谢!

1 个答案:

答案 0 :(得分:1)

尝试使用此功能,看看它是否有效:

public static Bitmap createScaledBitmap(Bitmap src,int dstWidth,int dstHeight,boolean filter)

文档链接: http://developer.android.com/reference/android/graphics/Bitmap.html#createScaledBitmap(android.graphics.Bitmap,int,int,boolean)