Android 如何在自定义视图中填充笔划文本?

Android 如何在自定义视图中填充笔划文本?,android,android-layout,android-custom-view,Android,Android Layout,Android Custom View,我准备了一个自定义视图,视图代码是 mPaint.setDither(true); mPaint.setColor(0xFFFFFFFF); mPaint.setTextSize(100); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeJoin(Paint.Join.ROUND); mPaint.setStr

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

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


    }
结果是,

在这里,我想在“安卓”里面填充一些颜色。我又准备了一个颜料,就是

mAlphaInner.setDither(true);
        mAlphaInner.setColor(0xFF0000FF);
        mAlphaInner.setTextSize(98);
在onDraw()中添加

但观点是,


请帮助我如何在“Android”中填充颜色。

如果您尝试
mPaint.setStyle(Pain.Style.fill\u和\u 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);
   }

您是否用填充和笔划检查了下面的答案??结果如何?如果我尝试使用白色填充mPaint.setStyle(Paint.Style.FILL_和_STROKE),但我希望使用不同颜色的填充。您使用的是白色。mPaint.setColor(0xFFFFFFFF);检查它在“两个油漆”视图中添加这条线后是这样的,
        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);
   }