web-dev-qa-db-ja.com

Android XMLのテキストにどのように下線を付けますか?

XMLファイル内のテキストにどのように下線を引きますか? textStyleにオプションが見つかりません。

95
Michael Zeuner

文字列リソースxmlファイル(HTMLタグをサポート)を使用している場合、<b> </b><i> </i>および<u> </u>を使用して実行できます。

<resources>
    <string name="your_string_here">
        This is an <u>underline</u>.
    </string>
</resources>

コードから何かに下線を引きたい場合:

TextView tv = (TextView) view.findViewById(R.id.tv);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tv.setText(content);

お役に立てれば

157
George Artemiou

これを使って:

TextView txt = (TextView) findViewById(R.id.Textview1);
txt.setPaintFlags(txt.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
54
abh22ishek
<resource>
    <string name="your_string_here">This is an <u>underline</u>.</string>
</resources>

うまくいかない場合

<resource>
<string name="your_string_here">This is an &lt;u>underline&lt;/u>.</string>

「<」がキーワードになる場合があるためです。

表示用

TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(getString(R.string.your_string_here)));
19
Bhavin

まず、String.xmlファイルに移動します

、斜体、太字、下線などのhtml属性をここに追加できます。

    <resource>
        <string name="your_string_here">This is an <u>underline</u>.</string>
    </resources>
3
Xar E Ahmer

別の方法として、TextViewを拡張するカスタムコンポーネントを作成します。複数の下線付きのTextViewが必要な場合に適しています。

コンポーネントのコードは次のとおりです。

package com.myapp.components;

import Android.content.Context;
import Android.support.v7.widget.AppCompatTextView;
import Android.text.SpannableString;
import Android.text.style.UnderlineSpan;
import Android.util.AttributeSet;

public class LinkTextView extends AppCompatTextView {
    public LinkTextView(Context context) {
        this(context, null);
    }

    public LinkTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void setText(CharSequence text, BufferType type) {
        SpannableString content = new SpannableString(text);
        content.setSpan(new UnderlineSpan(), 0, content.length(), 0);

        super.setText(content, type);
    }
}

そして、xmlでそれを使用する方法:

<com.myapp.components.LinkTextView
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:text="Hello World!" />
2
Tharkius

私は以下の方法を使用しました、それは私のために働いた。以下はボタンの例ですが、TextViewでも使用できます。

Button btnClickMe = (Button) findViewById(R.id.btn_click_me);
btnClickMe.setPaintFlags(btnClickMe.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
1

Android TextViewで下線付きテキストを実現するには、さまざまな方法があります。

1 .<u>This is my underlined text</u>または

I just want to underline <u>this</u> Word

2.プログラムで同じことができます。

`textView.setPaintFlags(textView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);`

3. SpannableStringを作成し、それをTextViewテキストプロパティとして設定することで実行できます

SpannableString text = new SpannableString("Voglio sottolineare solo questa parola");
text.setSpan(new UnderlineSpan(), 25, 6, 0);
textView.setText(text);
1
Anandharaj R

以下のマークアップを使用できますが、textAllCapstrueに設定すると、下線効果が削除されることに注意してください。

<resource>
    <string name="my_string_value">I am <u>underlined</u>.</string>
</resources>


マークアップを含む文字列(login_change_settings)でtextAllCapsを使用します。上限変換によりマークアップが削除されます

TextAllCapsテキスト変換は、最終的にCharSequenceでtoStringを呼び出します。これにより、などのマークアップが削除されます。このチェックは、textAllCaps = trueも指定するマークアップを含む文字列の使用を探します。

1
Tebo

Bhavinの回答を完了します。たとえば、下線またはリダイレクトを追加します。

((TextView) findViewById(R.id.tv_cgu)).setText(Html.fromHtml(getString(R.string.upload_poi_CGU)));

<string name="upload_poi_CGU"><![CDATA[ J\'accepte les <a href="">conditions générales</a>]]></string>

ここで互換性のあるタグを知ることができます: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html

0
Anthone