我正在尝试更改textview上显示的字符串的字体大小。 记得有两个字符串显示在同一个textview上。我想要不同的字体大小 两个字符串。
String name = shopsArrayList.get(position);
String address = shopsAddress.get(position);
我尝试了这个,但它是在两个字符串上完成的,
tv.setText(name.toUpperCase() + "\r\n" + address);
tv.setPadding(25, 15, 0, 0);
tv.setTextSize(25);
请帮助!!!
答案 0 :(得分:1)
您可以使用SpannableString
轻松完成此操作。
见这个例子:
String str= "Hello World";
SpannableString spannable= new SpannableString(str);
spannable.setSpan(new RelativeSizeSpan(1.5f), 0, 5, 0); //size
spannable.setSpan(new ForegroundColorSpan(Color.CYAN), 0, 5, 0);//Color
TextView txtview= (TextView) findViewById(R.id.textview);
txtview.setText(spannable);
希望这有帮助。
答案 1 :(得分:0)
将第二个字符串放入Span中,以允许您更改文本的样式,例如TextAppearanceSpan。 http://developer.android.com/reference/android/text/style/TextAppearanceSpan.html
答案 2 :(得分:0)
您可以先为该
设置样式<style name="firstStyle">
<item name="android:textSize">@dimen/regular_text</item>
</style>
<style name="secondStyle">
<item name="android:textSize">@dimen/bullet_text</item>
</style>
然后你必须从你的两个字符串中创建一个字符串,并指定你需要申请效果的字符串的长度。
SpannableString span = new SpannableString(myString);
span.setSpan(new TextAppearanceSpan(getContext(), R.style.firstStyle),0,15, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
span.setSpan(new TextAppearanceSpan(getContext(), R.style.secondStyle),16,30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(span, TextView.BufferType.SPANNABLE);
答案 3 :(得分:0)
尝试使用Html格式,像这样:
myTextView.setText(Html.fromHtml("<p style='font-family: serif;'>Description here</p><br><p style='font-family: Times;'>Blah Blah Blah</p>"));
答案 4 :(得分:0)
实现相同的动态方式
String name = shopsArrayList.get(position);
String address = shopsAddress.get(position);
int nameLength = name.length();
int addressLength = address.length();
Spannable span = new SpannableString(name+address);
span.setSpan(new StyleSpan(Typeface.BOLD),0, nameLength,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
span.setSpan(new StyleSpan(Typeface.ITALIC),nameLength+1, addressLength,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
现在将文本设置为textview
textView.setText(span);