1

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;
}

皆さんありがとう!

4

2 に答える 2

2

あなたの最初の例は私には間違っているように見えます、代わりにこれを試してください:

    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出力であることを確認してください。

于 2010-10-31T06:13:42.990 に答える
1

前のエントリが2年以上前に受け入れられた回答であったことは知っていますが、少し異なるソリューションを追加しています

Spanned span = Html.fromHtml(getText(R.string.desc_about1) + "&trade;");
mSwitcher.setText(span);

その取引; ™のように小さくてスーパースクリプトのTMではなく、文字セットから単一の文字に変換します

于 2013-01-23T09:22:16.447 に答える