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

use*_*274 31 xml android 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"/>
Run Code Online (Sandbox Code Playgroud)

并且字符串文件具有:

<resources>

 <string name="button_name"><u>parking areas</u></string>
</resources
Run Code Online (Sandbox Code Playgroud)

此方法适用于textview但不适用于按钮.

- 有什么建议吗?

fin*_*nki 64

仅限代码

Java的:

Button button = (Button) findViewById(R.id.park);
button.setPaintFlags(button.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
Run Code Online (Sandbox Code Playgroud)

科特林:

val button = findViewById<Button>(R.id.park);
button.paintFlags = button.paintFlags or Paint.UNDERLINE_TEXT_FLAG
Run Code Online (Sandbox Code Playgroud)

带有静态文本的资源字符串(仅限xml)

如果您的资源中有静态文本,您还可以在以下方法中使用以下方法strings.xml:

<string name="underlined_text"><u>I\'m underlined</u></string>
Run Code Online (Sandbox Code Playgroud)

带动态文本的资源字符串(xml +代码)

如果您使用的是动态文本但不喜欢第一种方法(也不是最好的方法),您还可以使用以下方法:

strings.xml中

<string name="underlined_dynamic_text"><u>%s</u></string>
Run Code Online (Sandbox Code Playgroud)

Java的:

button.setText(getString(R.string.underlined_dynamic_text, "I'm underlined");
Run Code Online (Sandbox Code Playgroud)

科特林:

button.text = getString(R.string.underlined_dynamic_text, "I'm underlined")
Run Code Online (Sandbox Code Playgroud)

  • 花了很长时间才回来!但是到目前为止在Android上获得了更多的经验,我意识到这个解决方案可以完美地运行.谢谢您的帮助. (2认同)

Moh*_*man 12

这应该使您的ButtonText同时变为 粗体,下划线斜体.

strings.xml中

<resources>
    <string name="register"><u><b><i>Copyright</i></b></u></string>
</resources>
Run Code Online (Sandbox Code Playgroud)

要将此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" />
Run Code Online (Sandbox Code Playgroud)


小智 6

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

Button button = (Button) findViewById(R.id.park);
button.setPaintFlags(button.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
Run Code Online (Sandbox Code Playgroud)