Bạn có thể làm điều này theo ba cách, bằng cách đặt tiền cảnh vào TextView
hoặc cài đặt PaintFlag
hoặc khai báo một chuỗi như <strike>your_string</strike>
trong strings.xml
. Ví dụ,
Thông qua PaintFlag
Đây là phương pháp đơn giản nhất bạn chỉ cần đặt cờ gạch ngang trên TextView là,
yourTextView.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG);
nó sẽ tấn công qua TextView của bạn.
Thông qua foreground drawable (Chỉ hoạt động cho API 23+)
Nếu minSdkVersion của bạn là API phiên bản 23 +, thì bạn có thể tấn công TextView của mình bằng cách đặt tiền cảnh là,
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape android:shape="line">
<stroke android:width="1dp" android:color="@android:color/holo_red_dark"/>
</shape>
</item>
</selector>
Bây giờ, bạn chỉ cần đặt ở trên drawable trong TextView của bạn là foreground
. Ví dụ,
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your Textview with StrikeThrough"
android:foreground="@drawable/strikethrough_foreground" /> <!-- this is available above --!>
Thông qua chuỗi
Trong phương thức này, bạn phải khai báo chuỗi của bạn strings.xml
dưới dạng tấn công qua,
<string name="strike_line"> <strike>This line is strike throughed</strike></string>
Ghi chú
Nhưng tôi khuyên bạn nên vượt qua TextView của mình bằng cách đặt foreground drawable. Bởi vì thông qua drawable, bạn có thể dễ dàng thiết lập màu đường kẻ sọc (như tôi đặt màu đỏ trong ví dụ trên) hoặc kích thước hoặc bất kỳ thuộc tính kiểu nào khác. Trong khi trong hai phương pháp khác, màu văn bản mặc định là màu gạch ngang.