[英]Android UnsupportedOperationException at Canvas.clipPath
[英]Trying to draw on canvas using canvas.clipPath
我试图在深色背景上画圆,试图达到这样的水平- 这实际上适用于我的Samsung s4和Samsung选项卡3,但不适用于s2和某些模拟器(所有环绕的视图组均变暗,并且在椭圆形内部也似乎看不到我的circleSelectionPath)。 请帮助我找到使它在每台设备上均可使用的方法
final Paint paint = new Paint();
paint.setColor(Color.parseColor("#77000000"));
Path circleSelectionPath = new Path();
mRectF.set(l, t, r, b);
circleSelectionPath.addOval(mRectF, Path.Direction.CW);
canvas.clipPath(circleSelectionPath, Region.Op.XOR);
canvas.drawRect(bitmapRect.left, bitmapRect.top, bitmapRect.right, bitmapRect.bottom, paint );
canvas.restore();
bitmapRect包含我的视图组变暗(例如:0,0,500,500)
得到它了。 Android的canvas.clipRect有一个错误,他们已经对其进行了优化,但是在某些android api上,简单地在优化后无法正常工作),我发现了一个问题。
所以修复-为此视图禁用Hrdware加速
(Build.VERSION.SDK_INT <= 19 && mCropShape == CropImageView.CropShape.OVAL) {
//TURN off hardware acceleration
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.