Open zhaiyong4118 opened 5 years ago
drawbitmap里面添加了一个paint后修复了这个问题
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (mChangedHeight != 0) { mTargetRect.offset(0, mChangedHeight); mInitHeight = mInitHeight + mChangedHeight; mChangedHeight = 0; } mEraserBitmap.eraseColor(Color.TRANSPARENT); mEraserCanvas.drawColor(mFullingPaint.getColor()); if (!mOverlayTarget) { switch (mStyle) { case Component.ROUNDRECT: mEraserCanvas.drawRoundRect(mTargetRect, mCorner, mCorner, mEraser); break; case Component.CIRCLE: mEraserCanvas.drawCircle(mTargetRect.centerX(), mTargetRect.centerY(), mTargetRect.width() / 2, mEraser); break; default: mEraserCanvas.drawRoundRect(mTargetRect, mCorner, mCorner, mEraser); break; } } // 这里我添加了一个paint,貌似修复了这个问题 canvas.drawBitmap(mEraserBitmap, mOverlayRect.left, mOverlayRect.top, paint); }
你把Bitmap.Config.ALPHA_8 改成 Bitmap.Config.RGB_565 试一下
mEraserBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);//就可以了
给你一个赞! @mhyc666
@aiynmm 大大的攒
drawbitmap里面添加了一个paint后修复了这个问题