有没有办法在Android中添加一行文字?由于下划线和删除线是可能的(独立于字体),因此似乎也应该进行上线。
我尝试过使用组合上线符号(如下图所示),但它看起来确实很时髦。有没有不同的方法来实现这一目标?
答案 0 :(得分: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);
}
}
答案 1 :(得分:-1)
做足够的R& D,这样做的唯一方法是创建一个ImageView并将其动态设置为线条图像,并使用getWidth()
设置其宽度相对于textview的宽度,并在textview上方定位并向左对齐到textview
答案 2 :(得分:-3)
如果你想在textview上使用删除线,你可以使用paint flags
TextView textview1=(TextView) findViewById(R.id.textView1);
textview1.setPaintFlags(textview1.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);