【发布时间】:2014-03-02 21:13:41
【问题描述】:
我正在尝试创建一个显示两个图像“bitmap_1,bitmap_2”的应用程序,当用户单击屏幕(显示的图像“bitmap_2”)时,会出现一个透明圆圈,显示来自下方的圆圈部分位图_1。
我花了很多时间寻找解决方案,我得到了一些代码,在三星 S 9001 "S1" 上运行良好,但在其他设备上显示黑色圆圈
public TouchView(Context context) {
super(context);
setScreenWH();
setBmImages(imagePosition);
// overlayDefault =
// BitmapFactory.decodeResource(getResources(),R.drawable.pre1);
// overlay =
// BitmapFactory.decodeResource(getResources(),R.drawable.pre1).copy(Config.ARGB_8888,
// true);
c2 = new Canvas(overlay);
pTouch = new Paint(Paint.ANTI_ALIAS_FLAG);
pTouch.setXfermode(new PorterDuffXfermode(Mode.SRC_OUT));
pTouch.setColor(Color.TRANSPARENT);
pTouch.setMaskFilter(new BlurMaskFilter(18, Blur.NORMAL));
}
...
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
// draw background
canvas.drawBitmap(bgr, 0, 0, null);
// copy the default overlay into temporary overlay and punch a hole
// in it
c2.drawBitmap(overlayDefault, 0, 0, null);
// exclude this line to
// show all as you draw
c2.drawCircle(X, Y, 80, pTouch);
// draw the overlay over the background
canvas.drawBitmap(overlay, 0, 0, null);
}
请帮我解决这个问题,参考这段代码: PorterduffXfermode: Clear a section of a bitmap,Android canvas: draw transparent circle on image,Make certain area of bitmap transparent on touch
【问题讨论】:
标签: android image android-canvas