23

Androidレイアウトxmlファイルで中線(取り消し線)テキストを定義するにはどうすればよいですか?

4

6 に答える 6

31

取り消し線を引くには、背景画像を使用して取り消し線効果を作成できます。

 android:background="@drawable/strike_through"

ここで、strike_through drawableは、中央を通る線を維持する9パッチの画像です。これは、それを実装する最も簡単な方法です。

または、このようにプログラムで実行できます。

TextView t = (TextView) findViewById(R.id.text);
t.setText("Text here");
t.setPaintFlags(t.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
于 2012-06-02T15:11:44.710 に答える
19

6つのすばらしい方法-AndroidTextViewの取り消し線XMLとKotlin/Javaの例

AndroidTextView取り消し線XML

スクリーンショット-AndroidTextViewStrikethrough XML&Kotlin/javaの例-

  1. ストライク要素を使用します。

    文字列.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"
/>    
  1. 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");

  2. 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");    `
于 2019-08-30T16:32:46.357 に答える
12

BindingAdapterを定義する場合

@BindingAdapter("strikeThrough")
public static void strikeThrough(TextView textView, Boolean strikeThrough) {
    if (strikeThrough) {
        textView.setPaintFlags(textView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
    } else {
        textView.setPaintFlags(textView.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
    }
}

それはただ

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    app:strikeThrough="@{true}"
    .../>

XMLレイアウトファイル内。

于 2019-05-07T17:54:11.803 に答える
4

kotlinでは、次のように実行できます。

your_textView.paintFlags = Paint.STRIKE_THRU_TEXT_FLAG
于 2019-04-12T07:45:56.087 に答える
3

xmlファイルのみでそれを行うために、これは私が行うことです:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/text_view_original_cash_amount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:textColor="@android:color/darker_gray"
        android:text="$36000"/>

    <View
        android:layout_width="wrap_content"
        android:layout_height="1dp"
        android:background="@android:color/darker_gray"
        android:layout_centerVertical="true"
        android:layout_alignStart="@id/text_view_original_cash_amount"
        android:layout_alignEnd="@id/text_view_original_cash_amount"/>

</RelativeLayout>

お役に立てれば!

于 2018-03-02T03:45:03.687 に答える
2
textview.setPaintFlags(textview.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

上記のコードをアクティビティで使用して、テキストをストライクすることができます。

そして、xmlを介して設定するには、これを参照してください

于 2012-06-02T15:12:15.620 に答える