私は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
このアプローチはテキストビューでは機能しますが、ボタンでは機能しません。
-なにか提案を?
コードのみ
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")
これにより、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" />
Xmlファイルから下線を設定することはできません。コードを使用して下線を設定するには、ボタンに下線フラグを設定する必要があります。
Button button = (Button) findViewById(R.id.park);
button.setPaintFlags(button.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
Button button= (Button) findViewById(R.id.park);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
button.setText(content);
これを使って:
TextView txt=(TextView)findViewById(R.id.txt);
String styledText = "<u>parking areas</u>";
txt.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE);