diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/MaskTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/MaskTransformation.java index 29b19eb..00eb5e6 100644 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/MaskTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/MaskTransformation.java @@ -48,8 +48,10 @@ public class MaskTransformation implements Transformation { public Resource transform(Resource resource, int outWidth, int outHeight) { Bitmap source = resource.get(); + boolean maskFromBitmapPool = true; Bitmap mask = mBitmapPool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888); if (mask == null) { + maskFromBitmapPool = false; mask = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888); } @@ -76,6 +78,10 @@ public class MaskTransformation implements Transformation { source.getWidth(), source.getHeight()), null); canvas.drawBitmap(source, 0, 0, paint); + if (maskFromBitmapPool) { + mBitmapPool.put(mask); + } + return BitmapResource.obtain(bitmap, mBitmapPool); } diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/NinePatchMaskTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/NinePatchMaskTransformation.java index 52d99e5..b7d3b53 100644 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/NinePatchMaskTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/NinePatchMaskTransformation.java @@ -56,8 +56,10 @@ public class NinePatchMaskTransformation implements Transformation { int width = outWidth == Target.SIZE_ORIGINAL ? source.getWidth() : outWidth; int height = outHeight == Target.SIZE_ORIGINAL ? source.getHeight() : outHeight; + boolean maskFromBitmapPool = true; Bitmap mask = mBitmapPool.get(width, height, Bitmap.Config.ARGB_8888); if (mask == null) { + maskFromBitmapPool = false; mask = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); } @@ -84,6 +86,10 @@ public class NinePatchMaskTransformation implements Transformation { source.getWidth(), source.getHeight()), null); canvas.drawBitmap(source, 0, 0, paint); + if (maskFromBitmapPool) { + mBitmapPool.put(mask); + } + return BitmapResource.obtain(bitmap, mBitmapPool); }