Canvas. drawTextOnPath()

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

参考:

Android 画布Canvas
安卓自定义View进阶-Canvas之绘制图形

猜你喜欢

转载自blog.csdn.net/qq_35008279/article/details/83618382