有什么办法可以在 Android 中的文本上加一行?由于下划线和删除线是可能的(与字体无关),似乎上划线也应该是。
我尝试过使用组合上划线符号(如下图所示),但它看起来确实很时髦。有没有不同的方法来实现这一目标?
有什么办法可以在 Android 中的文本上加一行?由于下划线和删除线是可能的(与字体无关),似乎上划线也应该是。
我尝试过使用组合上划线符号(如下图所示),但它看起来确实很时髦。有没有不同的方法来实现这一目标?
我知道这不是一个完美的解决方案。但它会给一些想法......
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);
}
}
在做了足够的研发之后,唯一的方法是创建一个 ImageView 并将其动态设置为线条图像,并通过使用getWidth()
和位置在 textview 上方并相对于左对齐来设置其宽度相对于 textview 的宽度到文本视图
如果你想在你的 textview 上加上删除线,你可以使用paint flags
TextView textview1=(TextView) findViewById(R.id.textView1);
textview1.setPaintFlags(textview1.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);