我不能设法让我的textSwitcher能够支持上标文本。无论我尝试什么,它都会显示为常规大小的文本。
下面是我尝试过的:
Spanned span = Html.fromHtml("<sup>TM</sup>");
String subscript = span.toString();
mSwitcher.setText(getText(R.string.desc_about1) + subscript);然后我尝试在XML字符串文件中设置它:
<string name="desc_about1">Android<sup><small>TM</small></sup></string>这两种方法都不起作用。还有别的办法吗?
我的textSwitcher代码供参考:
<TextSwitcher android:id="@+id/switcher"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
@Override
public View makeView() {
TextView t = new TextView(this);
t.setGravity(Gravity.TOP | Gravity.LEFT);
t.setTextSize(18);
return t;
}谢谢大家!
发布于 2010-10-31 14:13:43
你的第一个例子对我来说看起来不正确,试试这个:
Spanned span = Html.fromHtml(getText(R.string.desc_about1) + "<sup>TM</sup>");
mSwitcher.setText(span);适用于我的完整示例:
package com.stackoverflow;
import android.app.Activity;
import android.os.Bundle;
import android.text.Html;
import android.view.Gravity;
import android.view.View;
import android.widget.TextSwitcher;
import android.widget.TextView;
import android.widget.ViewSwitcher.ViewFactory;
public class Test extends Activity implements ViewFactory {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextSwitcher ts = (TextSwitcher) findViewById(R.id.switcher);
ts.setFactory(this);
ts.setText(Html.fromHtml("Test<sup>TM</sup>"));
}
@Override
public View makeView() {
TextView t = new TextView(this);
t.setGravity(Gravity.TOP | Gravity.LEFT);
t.setTextSize(18);
return t;
}}
如果你想用strings.xml存储你的文本:
mSwitcher.setText(Html.fromHtml(getText(R.string.desc_about1) + "<sup>TM</sup>"));只需确保您传递给setText最新内容是fromHtml输出。
发布于 2013-01-23 17:22:16
我知道上一个条目在两年前是一个公认的答案,但我添加了一个略有不同的解决方案
Spanned span = Html.fromHtml(getText(R.string.desc_about1) + "™");
mSwitcher.setText(span);将& trade;转换为字符集的单个字符,而不是像在™中那样转换为较小的超级脚本TM
https://stackoverflow.com/questions/4059763
复制相似问题