Android 直接使用可绘制资源和解码资源的区别
我正在使用位图资源在传输模式下使用Android 直接使用可绘制资源和解码资源的区别,android,android-drawable,Android,Android Drawable,我正在使用位图资源在传输模式下使用DST_屏蔽另一幅图像。这是位图: (您可能看不到它,因为它是白色和透明的。) 如果我这样加载,一切都会按预期进行: mMaskBitmap = BitmapFactory.decodeResource(getResources(), mMaskId); 但如果我这样加载,就好像遮罩图像是完全透明的: mMaskDrawable = getResources().getDrawable(mMaskId); mMaskBitmap = Bitmap.c
DST_屏蔽另一幅图像。这是位图:
(您可能看不到它,因为它是白色和透明的。)
如果我这样加载,一切都会按预期进行:
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);
有什么区别
两种方式生成的位图分别是configARGB_8888
、density 320和512x512。这个大小很奇怪,因为资源文件是256x256,但两者都是一样的
我想使用Drawable
方法,这样资源就可以是一个ninepatch。我在调用draw(…)
之前添加了这个:
我可以发誓这是我尝试的第一件事,但不管怎样,它现在起作用了。也许我以前试着清理和重建的时候做错了什么
mMaskDrawable.setBounds(0, 0, w, h);