web-dev-qa-db-ja.com

Androidのボタンのテキストに下線を付けるにはどうすればよいですか?

私はAndroid programming.Iで新しいです。シンプルなアプリを開発しています。透明でアイコンとテキストのあるボタンがあります。ボタンのテキストに下線を引きたいのですが、以下が私のxmlコードです。

<Button
 Android:id="@+id/park"
 Android:layout_width="wrap_content"
 Android:layout_height="wrap_content"
 Android:drawableLeft="@drawable/park"
 Android:text="@string/button_name"
 Android:background="#00000000"
 Android:textColor="#000000"/>

文字列ファイルには次のものがあります。

<resources>

 <string name="button_name"><u>parking areas</u></string>
</resources

このアプローチはテキストビューでは機能しますが、ボタンでは機能しません。

-なにか提案を?

30
user3303274

コードのみ

Java:

Button button = (Button) findViewById(R.id.park);
button.setPaintFlags(button.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);

コトリン:

val button = findViewById<Button>(R.id.park);
button.paintFlags = button.paintFlags or Paint.UNDERLINE_TEXT_FLAG

静的テキストを含むリソース文字列(xmlのみ)

リソースに静的テキストがある場合は、strings.xml

<string name="underlined_text"><u>I\'m underlined</u></string>

ダイナミックテキスト(xml +コード)を含むリソース文字列

ダイナミックテキストを使用しているが、最初のアプローチが気に入らない場合(どちらも最高の私見ではありません)、次の方法も使用できます。

strings.xml

<string name="underlined_dynamic_text"><u>%s</u></string>

Java:

button.setText(getString(R.string.underlined_dynamic_text, "I'm underlined");

コトリン:

button.text = getString(R.string.underlined_dynamic_text, "I'm underlined")
63
finki

これにより、ButtonText太字下線付き、およびitalic同時に。

strings.xml

<resources>
    <string name="register"><u><b><i>Copyright</i></b></u></string>
</resources>

この文字列をTextViewに設定するには、main.xmlでこれを行います

<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/btn1"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:text="@string/register" />
10
Mohammad Arman

Xmlファイルから下線を設定することはできません。コードを使用して下線を設定するには、ボタンに下線フラグを設定する必要があります。

Button button = (Button) findViewById(R.id.park);
button.setPaintFlags(button.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
4
Amit Padekar
Button button= (Button) findViewById(R.id.park);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
button.setText(content);
3
sasikumar

これを使って:

TextView txt=(TextView)findViewById(R.id.txt);
        String styledText = "<u>parking areas</u>";
        txt.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE);
3
Ketan