如何在自定义视图中填充笔画文本



我准备了一个自定义视图,视图代码是,

    mPaint.setDither(true);
            mPaint.setColor(0xFFFFFFFF);
            mPaint.setTextSize(100);
            mPaint.setStyle(Paint.Style.STROKE);
            mPaint.setStrokeJoin(Paint.Join.ROUND);
            mPaint.setStrokeCap(Paint.Cap.ROUND);
            mPaint.setStrokeWidth(2);
protected void onDraw(Canvas canvas) {
          canvas.drawText("Android",100,100,mPaint);

    }

result view is,

https://i.stack.imgur.com/yDXL3.png

这里我想在"Android"内部填充一些颜色。我又准备了一个绘画对象,也就是

mAlphaInner.setDither(true);
        mAlphaInner.setColor(0xFF0000FF);
        mAlphaInner.setTextSize(98);

添加在onDraw(),

 canvas.drawText("Android",100,100,mPaint);

but view is

https://i.stack.imgur.com/oHueB.png

请告诉我如何在"Android"内部填充颜色。

如果您尝试mPaint.setStyle(Pain.Style.FILL_AND_STROKE)

编辑:

忘记两种颜料中的Paint.setTextAlign(Paint.Align.CENTER)

使用两种不同的模式绘制文本两次。

        mPaint.setDither(true);
        mPaint.setColor(0xFFFFFFFF);
        mPaint.setTextSize(100);
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setStrokeJoin(Paint.Join.ROUND);
        mPaint.setStrokeCap(Paint.Cap.ROUND);
        mPaint.setStrokeWidth(2);
        mAlphaInner.set(mPaint);  //Set the same text size!
        mAlphaInner.setColor(0xFF0000FF);
        mAlphaInner.setStyle(Paint.Style.FILL_AND_STROKE);
    protected void onDraw(Canvas canvas) {
      canvas.drawText("Android",100,100,mAlphaInner);
      canvas.drawText("Android",100,100,mPaint);
   }

最新更新