2

how to make a black line around the text for my textView? example on above image

enter image description here

4

3 回答 3

5

扩展 TextView 类。然后在onDraw中,先用黑色画文字,然后再画,稍微小一点,用白色。要获得额外的“正确性”,请向 XML 添加自定义属性以设置“线周围”颜色。

public class myTextView extends TextView{

    public myTextView (Context context) {
        this(context, null);    
    }

    public myTextView (Context context, AttributeSet attrs) {
        this(context, attrs, 0);            

    }

    public myTextView (Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);        
        // do extra initialisation and get attributes here
    }

    @Override
    protected void onDraw(Canvas canvas) {

        // draw first in black
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);
        paint.setTextSize(20);                // text size
        paint.setStyle(Paint.Style.STROKE);
        paint.setTextAlign(Paint.Align.CENTER);

        canvas.drawText("My text", 50, 50, paint);

        // draw again in white, slightly smaller
        paint.setColor(Color.WHITE);
        paint.setTextSize(18);                // text size

        canvas.drawText("My text", 50, 50, paint);


    }


}

代码不完整,因为它对颜色、大小和位置进行了硬编码,但我希望它足以让您使用。您可以通过构造函数中的 attrs 从 XML 中获取文本大小和文本颜色,并将线条颜色和宽度添加为自定义属性(在此处搜索或 Google)。

于 2012-11-04T16:55:54.007 回答
4

我会使用已经有轮廓的字体,例如http://www.dafont.com/steelfish.font

如此处所述Android - 使用自定义字体

于 2012-11-04T17:00:59.203 回答
1

将此添加到您的 xml 文件中:

android:shadowColor="#000000"
android:shadowDx="1.5"
android:shadowDy="1.3"
android:shadowRadius="1.6"
android:text="YOUR TEXT"
android:textColor="@color/white"
于 2017-12-12T08:19:27.727 回答