通过Multiline TextView进行攻击

时间:2015-12-14 08:02:40

标签: android xml android-layout

这不是一个重复的问题,我发现了一些问题,但他们没有满意的答案,答案不适用于多行文字观点。

我已经检查过以下链接,但它们不够用: Is there an easy way to strike through text in an app widget?

我想在TextView(striked TextView)的中心创建一条线,但我希望在XML布局中而不是在Java代码中进行。

我已经通过使用JAVA代码实现了这个结果:

myTextView.setPaintFlags(myTextView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

我想要相同的结果,但在下面的XML代码中:

<TextView
    android:id="@+id/myTextView" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 

    />

enter image description here

再次感谢。

3 个答案:

答案 0 :(得分:1)

最简单的方法是使用图像。

使用水平线和透明背景创建图像,并将其设置为TextView

的背景
android:background="@drawable/strike_through"

创建一个xml文件,该文件将绘制一条线并将其设置为TextView

的背景
<shape android:shape="line">
     <stroke android:width="2dp" android:color="#ffffff" />
</shape>

答案 1 :(得分:1)

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@android:color/white"
        android:text="XYZ"
        android:background="@drawable/line"/>

<强> line.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">

    <stroke android:width="1dp"
        android:color="@android:color/white"/>

</shape>

试试这个!

修改

以上代码仅适用于单行文字。 对于多行文本,请使用以下代码:

<string name="strike_text">
        <strike>sample TextView \nSecond line of TextView</strike>
</string>

并将其用作

android:text="@string/strike_text"

答案 2 :(得分:0)

在xml中执行此操作的方法是创建一个drawable of strike并将其设置为TextView的背景。 drawable的一个例子是:

<item android:state_pressed="false">
    <shape android:shape="line">
         <stroke android:width="2dp" android:color="#ffffff" />
    </shape>
</item>