📅  最后修改于: 2023-12-03 15:13:21.788000             🧑  作者: Mango
在 Android 应用程序中,经常需要为文本添加下划线,以突出显示特定文本或链接。在本文中,我们将学习如何使用 Android 标准类库和方法绘制带下划线的文本。
使用 TextView 来显示文本是非常常见和简单的方法。TextView 提供了许多属性和方法,可以用于格式化文本和添加下划线。下面是一个示例:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="20sp"
android:textStyle="bold|italic"
android:underline="true" />
通过将 android:underline
属性设置为 true
,可以在 TextView 中添加下划线。可以使用 android:textStyle
属性设置文本样式,例如粗体、斜体等。还可以使用 android:textSize
属性设置文本的大小。
另一种方法是使用 Android 自带的 Paint 类绘制下划线。这种方法的优点是可以更好地控制下划线的样式和位置。
首先,创建一个自定义 View,并在 onDraw()
方法中绘制文本和下划线。下面是示例代码:
public class UnderlinedTextView extends View {
private String mText;
private Paint mTextPaint;
private Paint mLinePaint;
public UnderlinedTextView(Context context) {
super(context);
init();
}
public UnderlinedTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
mText = "Hello World!";
// 初始化文本画笔
mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mTextPaint.setTextSize(40);
mTextPaint.setColor(Color.BLACK);
// 初始化下划线画笔
mLinePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mLinePaint.setColor(Color.BLACK);
mLinePaint.setStyle(Paint.Style.STROKE);
mLinePaint.setStrokeWidth(5);
}
@Override
protected void onDraw(Canvas canvas) {
// 绘制文本
canvas.drawText(mText, 0, getHeight(), mTextPaint);
// 绘制下划线
float y = getHeight() + mLinePaint.getStrokeWidth() / 2;
canvas.drawLine(0, y, mTextPaint.measureText(mText), y, mLinePaint);
}
}
在 init()
方法中,我们初始化了文本画笔和下划线画笔。文本画笔用于绘制文本,下划线画笔用于绘制下划线。
在 onDraw()
方法中,我们首先调用 drawText()
方法绘制文本。文本的绘制位置是 View 的底部。
接下来,我们计算下划线的位置并使用 drawLine()
方法绘制下划线。mLinePaint.getStrokeWidth()
获取下划线的宽度,而 mTextPaint.measureText(mText)
获取文本的宽度。
最后,将 CustomView 添加到布局中即可。
<com.example.myapplication.UnderlinedTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
这篇文章介绍了两种在 Android 应用程序中绘制下划线的方法。使用 TextView 可以很容易地添加直接下划线,但是对于更复杂的下划线,使用 Paint 更为灵活和强大。希望这篇文章对你有所帮助!