1

有什么办法可以在 Android 中的文本上加一行?由于下划线和删除线是可能的(与字体无关),似乎上划线也应该是。

我尝试过使用组合上划线符号(如下图所示),但它看起来确实很时髦。有没有不同的方法来实现这一目标?

罗马数字转换器

4

3 回答 3

2

我知道这不是一个完美的解决方案。但它会给一些想法......

public class OverLineTextView extends TextView {

    private Paint paint;

    public OverLineTextView(Context context) {
        super(context);
        init();
    }

    public OverLineTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public OverLineTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    private void init() {
        paint = new Paint();
        paint.setAntiAlias(true);
        paint.setColor(Color.GREEN);
        paint.setStyle(Style.STROKE);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        float width = getPaint().measureText(getText().toString());
        canvas.drawLine(getTotalPaddingLeft(), getTotalPaddingTop() + 1,
                getTotalPaddingLeft() + width, getTotalPaddingTop() + 1, paint);
    }
}
于 2013-11-05T07:25:18.563 回答
-1

在做了足够的研发之后,唯一的方法是创建一个 ImageView 并将其动态设置为线条图像,并通过使用getWidth()和位置在 textview 上方并相对于左对齐来设置其宽度相对于 textview 的宽度到文本视图

于 2013-11-05T05:23:26.480 回答
-3

如果你想在你的 textview 上加上删除线,你可以使用paint flags

TextView textview1=(TextView) findViewById(R.id.textView1);
textview1.setPaintFlags(textview1.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
于 2013-11-05T04:29:54.283 回答