我正在尝试创建文本颜色为黑色且条纹为红色的文本视图,我尝试使用 html 但似乎不起作用
String styledText = "<span style='color:red;text-decoration:line-through'><span style='color:black'>TEXT</span></span>";
myText.setText(Html.fromHtml(styledText));
我也尝试了下面的方法,但不知道如何为删除线定义不同的颜色
myText.setPaintFlags(myText.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
如果要删除TextView
中的所有文本,只需创建一个TextView
子类,在其中使用您选择的颜色绘制划线。
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
drawStrikeThroughPaint(canvas);
}
public void drawStrikeThroughPaint(Canvas canvas) {
canvas.drawLine(0, getMeasuredHeight() / 2, getMeasuredWidth(), getMeasuredHeight() / 2, strikethroughPaint);
}
晚了,
但使用图层列表并将其放在文本视图背景的顶部。让我告诉你。
在可绘制对象文件夹中创建一个名为直通.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#FFFFFF"/>
</shape>
</item>
<item>
<shape android:shape="line">
<stroke android:width="1dp"
android:color="#8d8d8d"/> <!-- adjust color you want here -->
</shape>
</item>
</layer-list>
然后在您的文本视图中执行以下操作:
<TextView
android:id="@+id/tv_toolbar_prod_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="3dp"
android:text="1,290 B"
android:background="@drawable/strikethru_line"
android:textColor="#070707"
android:textSize="13sp" />
3DP的填充权使删除线更多地从文本中出现,以产生真实的世界效果。