android.graphicsパッケージ - Canvasクラス、
android.graphicsパッケージ - Pathクラス、
を使用します。
- Canvas.drawPath()を呼び出すと、パスを描画できます。
サンプルソースコード
@Override
protected void onDraw(Canvas canvas) {
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.argb(255, 164, 199, 57));
canvas.drawARGB(255, 255, 255, 255);
// 目
Path clipPath = new Path();
clipPath.addCircle(140, 80, 3, Path.Direction.CW);
canvas.clipPath(clipPath, Op.DIFFERENCE);
clipPath.addCircle(170, 80, 3, Path.Direction.CW);
canvas.clipPath(clipPath, Op.DIFFERENCE);
Path path = new Path();
// 左腕
path.addRoundRect(new RectF(102, 95, 117, 145), 7, 7, Path.Direction.CW);
// 右腕
path.addRoundRect(new RectF(193, 95, 208, 145), 7, 7, Path.Direction.CW);
// 胴体(上部)
path.addRect(new RectF(120, 98, 190, 145), Path.Direction.CW);
// 胴体(下部)
path.addRoundRect(new RectF(120, 140, 190, 150), 5, 5, Path.Direction.CW);
// 左足
path.addRoundRect(new RectF(135, 140, 150, 175), 7, 7, Path.Direction.CW);
// 右足
path.addRoundRect(new RectF(160, 140, 175, 175), 7, 7, Path.Direction.CW);
// 頭
path.addArc(new RectF(120, 63, 190, 127), 180, 180);
// アンテナ?(左)
path.moveTo(140, 70);
path.lineTo(130, 55);
path.lineTo(131, 54);
path.lineTo(141, 69);
// アンテナ?(右)
path.moveTo(170, 70);
path.lineTo(180, 55);
path.lineTo(182, 54);
path.lineTo(172, 69);
canvas.drawPath(path, paint);
}
参考ページ