android - 如何在Android中为按钮的文本加下划线?

标签 android xml button

我有一个透明的按钮,上面有图标和文字。

我想为按钮的文本添加下划线,但我无法做到这一点。

下面是我的xml代码:

<Button
     android:id="@+id/parkButton"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:drawableStart="@drawable/park"
     android:text="@string/button_name"
     android:background="@android:color/transparent"
     android:textColor="@android:color/black"/>

字符串文件有:

<resources>
    <string name="button_name"><u>Parking Areas</u></string>
</resources>

这种方法适用于 TextView,但不适用于 Button。 有什么建议吗?

最佳答案

仅代码

Java:

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

Kotlin :

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 + 代码)

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

字符串.xml

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

Java:

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

Kotlin :

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

关于android - 如何在Android中为按钮的文本加下划线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31718707/

相关文章:

android - 执行 doInBackground() 时出错

java - 在外部类中实现静态嵌套类的接口(interface)

c# - 是否可以在 XSL 中展平 XML 层次结构?

Swift 以编程方式为带有闭包的按钮创建函数

android - 如何感知是否有人点击了android中的某个区域?

Android JNI 异常处理

android - 如何在不改变两个数组列表顺序的情况下打乱两个不同的数组列表值

javascript - AngularJS - 我的指令之一不起作用,其他指令起作用吗?

c - 从C中的XML文件中获取相同多个标签之间的所有信息

c# - 如何在动态按钮上创建动态按钮单击事件?