user836026
user836026

Reputation: 11362

How to outline text in android map

I would like to outline text in Overlay inside map. I tried the below code, but the reult were not very satisfactory.

Paint paint = new Paint();
                paint.setTextAlign(Paint.Align.CENTER);
                paint.setTextSize(mTextSize);

                paint.setAntiAlias(true);
              //  paint.setARGB(150, 0, 0, 0); // alpha, r, g, b (Black, semi see-through)
              //  paint.setARGB(255, 255, 255, 255); 
                paint.setColor(0xFFFFFFFF );
                //paint.setStyle(Paint.Style.STROKE);
                paint.setStyle(/*Paint.Style.FILL_AND_STROKE*/Paint.Style.FILL);
                //show text to the right of the icon
                canvas.drawText(item.getTitle(), ptScreenCoord.x+(distancesShift), ptScreenCoord.y+23-mTextSize, paint);
                // again to show outline
                Paint paint2 = new Paint();
                paint2.setTextAlign(Paint.Align.CENTER);
                paint2.setTextSize(mTextSize);

                paint2.setAntiAlias(true);
                paint2.setTextAlign(Paint.Align.CENTER);
              //  paint.setARGB(150, 0, 0, 0); // alpha, r, g, b (Black, semi see-through)
              //  paint2.setARGB(255, 255, 255, 255); 
                paint2.setColor(0x00000000);
                paint2.setStyle(Paint.Style.STROKE);
                paint2.setStrokeWidth(4);

                canvas.drawText(item.getTitle(), ptScreenCoord.x+(distancesShift), ptScreenCoord.y+23-mTextSize, paint2);

Upvotes: 1

Views: 622

Answers (1)

user836026
user836026

Reputation: 11362

I got it!! i did small changes to above code as shown below.

Paint paint = new Paint();
            paint.setTextAlign(Paint.Align.CENTER);
            paint.setTextSize(mTextSize);

            paint.setAntiAlias(true);
          //  paint.setARGB(150, 0, 0, 0); // alpha, r, g, b (Black, semi see-through)
          paint.setARGB(255, 0, 0, 0); 
            //paint.setColor(0xFFFFFFFF );
            //paint.setStyle(Paint.Style.STROKE);
            paint.setStyle(/*Paint.Style.FILL_AND_STROKE*/Paint.Style.STROKE);
            paint.setStrokeWidth(4);
            //show text to the right of the icon
            canvas.drawText(item.getTitle(), ptScreenCoord.x+(distancesShift), ptScreenCoord.y+23-mTextSize, paint);
            // again to show outline
            Paint paint2 = new Paint();
            paint2.setTextAlign(Paint.Align.CENTER);
            paint2.setTextSize(mTextSize);

            paint2.setAntiAlias(true);
            paint2.setTextAlign(Paint.Align.CENTER);
          //  paint.setARGB(150, 0, 0, 0); // alpha, r, g, b (Black, semi see-through)
           paint2.setARGB(255, 255, 255, 255); 
           // paint2.setColor(0x00000000);
            paint2.setStyle(Paint.Style.FILL);


            canvas.drawText(item.getTitle(), ptScreenCoord.x+(distancesShift), ptScreenCoord.y+23-mTextSize, paint2);

Upvotes: 1

Related Questions