如何在Android中为按钮文字加下划线?

时间:2015-07-30 08:26:19

标签: android xml button

我是android编程的新手。我正在开发一个简单的应用程序。我有一个透明的按钮,有一个图标和文字。我想强调按钮的文字,但我无法做到这一点。下面是我的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

这个认可 ch在textview中工作,但不在按钮中。

- 任何建议?

5 个答案:

答案 0 :(得分:55)

仅限代码

爪哇:

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>

爪哇:

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

科特林:

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

答案 1 :(得分:9)

这应该使您的 ButtonText 粗体带下划线 斜体 同一时间。

<强>的strings.xml

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

要将此String设置为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" />

答案 2 :(得分:3)

使用此:

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

答案 3 :(得分:3)

您无法在xml文件中设置下划线。要使用代码设置下划线,您需要在按钮上设置下划线标志。

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

答案 4 :(得分:2)

Button button= (Button) findViewById(R.id.park);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
button.setText(content);