我想在Android画布上绘制类似于这个形状的东西:
我认为最好的方法是将此形状定义为2个圆和一条线的交点。用android canvas创建它的正确方法是什么?
更新 我现在使用PorterDuff作为smith324建议:
*注意:为了清晰起见,代码略有简化。
darkPaint = new Paint();
darkPaint.setColor(Color.rgb(50, 50, 50));
lightPaint = new Paint();
lightPaint.setColor(Color.rgb(200, 200, 200));
atopPaint= new Paint(GameDrawingPanel.darkPaint.getColor());
atopPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_ATOP));
atopPaint.setAntiAlias(true);
atopPaint.setStrokeWidth(2);
_boardCanvas.drawCircle(x, y, radius, darkPaint);
_boardCanvas.drawCircle(x, y, radius_small, lightPaint);
_boardCanvas.drawRect(0,0,height,width,atopPaint);
答案 0 :(得分:2)
我确切地忘记了这里使用哪些模式(XOR应该可以工作),但实质上你需要使用PorterDuff传输模式来实现这一点。尝试将同心圆绘制在一起,然后在一侧绘制一个分割矩形。
http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html