我的应用程序中有一个按钮。按钮中的文字显示为“Type: Location
”。
我想知道是否可以将按钮上的文字更改为“类型:位置”
即将文字部分加到按钮上?
感谢yoru提前一段时间。
答案 0 :(得分:26)
我们有更好的选择:android:textStyle="bold"
android api支持粗体
答案 1 :(得分:22)
只需将您的字符串放在strings.xml中并像这样更改
<string name="hello"><b>Hello</b> World, fh!</string>
并将此文本设置为您的按钮
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="@string/hello"
/>
有时,如果您必须使用动态文本,上述方法将无济于事。所以在这种情况下SpannableString开始行动了。
String tempString="Copyright";
Button button=(Button)findViewById(R.id.button);
SpannableString spanString = new SpannableString(tempString);
spanString.setSpan(new StyleSpan(Typeface.BOLD), 0, spanString.length(), 0);
button.setText(spanString);
答案 2 :(得分:4)
您可以使用Html.fromHtml()
进行设置,并以字符串形式提供包含HTML元素的字符串资源。希望这有帮助!
答案 3 :(得分:3)
使用跨度:
SpannableStringBuilder builder = new SpannableStringBuilder("Type: your type here!");
StyleSpan boldStyle = new StyleSpan(Typeface.BOLD);
builder.setSpan(boldStyle, 0, 5, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
((Button) findViewById(R.id.button)).setText(builder);
答案 4 :(得分:2)
答案 5 :(得分:1)
如果想以编程方式设置文本,请使用此方法
按钮强>
首先,您必须在XML中设置按钮的属性
android:textAllCaps="false" // very important without this property might be it won't show effect
public SpannableString setSpanableString(String textString, int start, int end){
SpannableString spanString = new SpannableString(textString);
spanString.setSpan(new StyleSpan(Typeface.BOLD), start, end, 0);
return spanString;
}
Button btn; // get your button reference here
String text = "Hi, Dharmbir";
btn.setText(setSpanableString(text, 4, text.length));// set here your index
<强>的TextView 强>
TextView tv; // get your TextView reference here
String text = "Hi, Dharmbir";
tv.setText(setSpanableString(text, 4, text.length));
<强>输出强>
嗨, Dharmbir