【发布时间】:2012-03-26 23:31:22
【问题描述】:
此代码使用位图的 Alpha 通道绘制单色(带 Alpha)形状。
Bitmap alphaMask = bitmap.extractAlpha();
Paint paint = new Paint();
int color = Color.GRAY;
...
paint.setColor(color);
paint.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.DST_IN));
...
canvas.drawBitmap(alphaMask, x, y, paint);
例如,它将获取左侧 Bitmap 并将其绘制到画布上,就像它出现在右侧一样:
但是,当硬件加速打开时,它在 Honeycomb (Android 3.0) 上不起作用。无论如何,它都会将形状绘制为黑色。它忽略颜色值。但是,它在 ICS (Android 4.0) 上运行良好,并启用了硬件加速。
我知道硬件加速不支持某些 API,例如 Romain Guy documented here,在 支持哪些绘图操作? 下,但我似乎没有使用任何提到的不支持的 API支持。
此外,听起来他说 setColorFilter 应该可以工作at this post。
我的代码中是否存在 Honeycomb 不支持的内容?任何解决方法?在这种情况下,我希望保持硬件加速。
谢谢
【问题讨论】:
标签: android drawing android-3.0-honeycomb hardware-acceleration