Closed FlyingFeeling closed 7 years ago
关闭硬件加速:在MaskView类的构造函数中加上 setLayerType(View.LAYER_TYPE_SOFTWARE, null); 抗锯齿:作者用的是canvas的canvas.clipPath()方法实现高亮区域的显示,canvas本身没有设置抗锯齿的方法,所以为了实现肉眼上的抗锯齿,在dispatchDraw()方法中加上下面几行代码: if (!mOverlayTarget && mStyle == Component.CIRCLE) { Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(Color.WHITE); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(2.0f); paint.setAntiAlias(true); canvas.drawCircle(mTargetRect.centerX(), mTargetRect.centerY(), mTargetRect.width() / 2-1, paint); }
这个问题已经解决了 ,请更新最新代码试一下,谢谢,您的宝贵建议
关闭硬件加速:在MaskView类的构造函数中加上 setLayerType(View.LAYER_TYPE_SOFTWARE, null); 抗锯齿:作者用的是canvas的canvas.clipPath()方法实现高亮区域的显示,canvas本身没有设置抗锯齿的方法,所以为了实现肉眼上的抗锯齿,在dispatchDraw()方法中加上下面几行代码: if (!mOverlayTarget && mStyle == Component.CIRCLE) { Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(Color.WHITE); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(2.0f); paint.setAntiAlias(true); canvas.drawCircle(mTargetRect.centerX(), mTargetRect.centerY(), mTargetRect.width() / 2-1, paint); }