Vous pouvez le faire de trois façons, soit en définissant le premier plan dans le fichier TextView
ou le réglage PaintFlag
ou en déclarant une chaîne de caractères comme <strike>your_string</strike>
sur strings.xml
. Par exemple,
Par le biais de PaintFlag
Il s'agit de la méthode la plus simple. Il vous suffit d'activer le drapeau "strikethrough" sur votre TextView,
yourTextView.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG);
il frappera à travers votre TextView.
Dessinable de premier plan (fonctionne uniquement pour API 23+)
Si votre minSdkVersion est la version 23 + de l'API, alors vous pouvez frapper à travers votre TextView en définissant un premier plan comme,
<?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>
Maintenant, il vous suffit de définir le drawable ci-dessus dans votre TextView en tant que foreground
. Par exemple,
<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 --!>
Par le biais de strings.xml
Dans cette méthode, vous devez déclarer votre chaîne de caractères dans le champ strings.xml
comme la grève à travers comme,
<string name="strike_line"> <strike>This line is strike throughed</strike></string>
Note
Mais je vous recommande de frapper à travers votre TextView en définissant le premier plan drawable. En effet, grâce au drawable, vous pouvez facilement définir la couleur de votre ligne barrée (comme j'ai défini la couleur rouge dans l'exemple ci-dessus) ou la taille ou toute autre propriété de style. Alors que dans les deux autres méthodes, la couleur par défaut du texte est la couleur barrée.