How can I define middle-lined(strikethrough) text in an Android layout xml file?
android:gravity="center" for text center in TextView. android:gravity="center_horizontal" inner text if you want horizontally centered. android:gravity="center_vertical" inner text if you want vertically centered. android:layout_centerInParent="true" if you want TextView in center position of parent view.
To align text in TextView at the center vertically and horizontally we need to make use of gravity attribute. Example 1 : You can use center_vertical | center_horizontal value to set the text at the center of the TextView area.
Specifically, Android considers XML-based layouts to be resources, and as such, layout files are stored in the reslayout directory inside your Android project. Each XML file contains a tree of elements specifying a layout of widgets and containers that make up one View.
android:gravity controls the appearance within the TextView. So if you had two lines of text they would be centered within the bounds of the TextView. Try android:layout_centerHorizontal="true" . Notice that this won't work if a RelativeLayout contains an attribute android:gravity="center_horizontal".
To strike through, you can use a background image to create the strikethrough effect:
android:background="@drawable/strike_through"
Where strike_through drawable is a 9-patch image that keeps a line through the middle. This is the easiest way to implement it.
or you can do it programatically as this.
TextView t = (TextView) findViewById(R.id.text); t.setText("Text here"); t.setPaintFlags(t.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
6 Amazing Ways - Android TextView Strikethrough XML & Kotlin/Java examples
Screenshot - Android TextView Strikethrough XML & Kotlin/java Example -
Using strike element.
strings.xml
<string name="strike_text">1. <strike>StrikeThrough</strike> Using strike</string>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/strike_text" />
Using STRIKE_THRU_TEXT_FLAG
Kotlin
textview2.paintFlags = textview2.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG textview2.text = "2. StrikeThrough Using Paint Flags
Java
textview2.setPaintFlags(textview2.getPaintFlags()| Paint.STRIKE_THRU_TEXT_FLAG); textview2.setText("2. StrikeThrough Using Paint Flags");
Using SpannableString
Kotlin
val content1 = "3.1 StrikeThrough Using SpannableString" val spannableString1 = SpannableString(content1) spannableString1.setSpan(StrikethroughSpan(),0,content1.length,0) textview31.text = spannableString1
Java
textview2.setPaintFlags(textview2.getPaintFlags()| Paint.STRIKE_THRU_TEXT_FLAG); textview2.setText("2. StrikeThrough Using Paint Flags"); `
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With