我正在使用位图资源来使用DST_IN
传输模式屏蔽其他图像。这是位图:
(你可能看不到它,因为它是白色透明的。)
如果我像这样加载它,一切都按预期工作:
mMaskBitmap = BitmapFactory.decodeResource(getResources(), mMaskId);
但是,如果我像这样加载它,就像掩模图像完全透明一样:
mMaskDrawable = getResources().getDrawable(mMaskId);
mMaskBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
mMaskCanvas = new Canvas(mMaskBitmap);
mMaskDrawable.draw(mMaskCanvas);
有什么区别?
两种方式生成的位图是config ARGB_8888
,密度320和512x512。大小很奇怪,因为资源文件是256x256,但它们都是相同的。
我想使用Drawable
方法,因此资源可以是9patch。
答案 0 :(得分:0)
我在致电draw(...)
之前添加了这个:
mMaskDrawable.setBounds(0, 0, w, h);
我可以发誓这是我尝试的第一件事之一,但无论如何,它现在有效。也许我之前尝试清理和重建时做错了。