1

I have prepared one custom view that view code is,

    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

here i want fill with some color inside "Android". I have prepared one more paint object that is,

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

added in onDraw(),

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

but view is ,

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

please help me how to fill with color inside "Android".

SuReSh PaTi
  • 1,373
  • 7
  • 28
  • 46

2 Answers2

0

What if you would try mPaint.setStyle(Pain.Style.FILL_AND_STROKE)

EDITED:

Forget about Paint.setTextAlign(Paint.Align.CENTER) in both paints

teoREtik
  • 7,886
  • 15
  • 46
  • 65
-1

Draw your text twice, using two different modes.

        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);
   }
Mikaël Mayer
  • 10,425
  • 6
  • 64
  • 101