2

Androidキャンバスでこの形状に似たものを描きたい:

http://i.imgur.com/eQOHz.png

この形状を 2 つの円と線の交点として定義するのが最善の方法だと思います。Androidキャンバスでこれを作成する適切な方法は何ですか?

更新 smith324 が提案したように、現在 PorterDuff を使用しています。

*注: わかりやすくするために、コードを少し簡略化しています。

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);
4

1 に答える 1

2

ここでどのモードが使用されるかを正確に忘れました (XOR が機能するはずです) が、基本的に、これを実現するには PorterDuff 転送モードを使用する必要があります。同心円を重ねて描いてから、片側に四角形を分割してみてください。

http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html

http://www.svgopen.org/2005/papers/abstractsvgopen/

于 2012-10-29T04:39:01.837 に答える