我是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中工作,但不在按钮中。
- 任何建议?
答案 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);