void drawTextOnPath (String text,
Path path,
float hOffset,
float vOffset,
Paint paint)
void drawTextOnPath (char[] text,
int index,
int count,
Path path,
float hOffset,
float vOffset,
Paint paint)
沿着Path绘制一段文字
- hOffset : 与路径起始点的水平偏移距离
- vOffset : 与路径中心的垂直偏移量
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Path path = new Path();
RectF rectF = new RectF(200,200,600,600);
path.addArc(rectF,0,120);
mPaint.setTextSize(50);
mPaint.setStyle(Paint.Style.FILL);
// 绘制路径
canvas.drawPath(path, mPaint);
String text = "happy everyday";
canvas.drawTextOnPath(text, path, 0f, 0f, mPaint);
}
效果:
canvas.drawTextOnPath(text, path, 50f, 0f, mPaint);
效果:
canvas.drawTextOnPath(text, path, 0f, -20f, mPaint);
效果:
就是想看看hOffset 和 vOffset 的效果,如上。
其他
Canvas
Paint
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(40); //为了实验效果明显,特地设置描边宽度非常大
// 描边
paint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(200,200,100,paint);
// 填充
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(200,500,100,paint);
// 描边加填充
paint.setStyle(Paint.Style.FILL_AND_STROKE);
canvas.drawCircle(200, 800, 100, paint);
参考: