效果图:
页面代码:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
mPaint = new Paint();
mPaint.setColor(Color.BLACK);
mPaint.setTextSize(14);
canvas.drawText(actionStr, 100, 100, mPaint);
mPaint.setStrokeWidth(10);
mPaint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(200, 250, 80, mPaint);
mPaint.setAntiAlias(true);
canvas.drawLine(100, 150, 300, 350, mPaint);
canvas.drawRect(100, 400, 400, 500, mPaint);
canvas.save();
mPaint.setStyle(Paint.Style.FILL);
canvas.clipRect(new Rect(100, 550, 300, 750));
canvas.drawColor(Color.LTGRAY);
canvas.drawCircle(150, 600, 100, mPaint);
canvas.restore();
mPaint.setStyle(Paint.Style.STROKE);
RectF rectF = new RectF(100, 800, 400, 900);
canvas.drawRoundRect(rectF, 20, 20, mPaint);
canvas.drawPoint(400, 200, mPaint);
canvas.drawPoints(new float[]{400, 220, 420, 220, 440, 220}, mPaint);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.smile);
canvas.drawBitmap(bitmap, 500, 150, mPaint);
Path path = new Path();
path.moveTo(400, 300);
path.lineTo(600, 350);
path.moveTo(400, 310);
path.quadTo(650, 400, 400, 600);
path.moveTo(400, 610);
path.cubicTo(400, 700, 500, 550, 600, 900);
path.moveTo(600, 1000);
RectF mRectF = new RectF(400, 900, 600, 1100);
path.arcTo(mRectF, 0, 270);
canvas.drawPath(path, mPaint);
RectF rectF1 = new RectF(100, 900, 200, 1000);
canvas.drawArc(rectF1,
0,
180,
false,
mPaint);
mPaint.setTextSize(16);
mPaint.setStrokeWidth(1);
canvas.drawPosText("Hello world", new float[]{20, 20,
30, 30,
40, 40, 50, 50, 60, 60, 70, 70, 80, 60, 90, 50, 100, 40, 110, 30, 120, 20}, mPaint);
canvas.drawTextOnPath("123456789", path, 50, -30, mPaint);
}