我有一个透明的按钮,上面有图标和文字。
我想为按钮的文本添加下划线,但我无法做到这一点。
下面是我的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/