Работа со строками - как я могу сделать "маленькие числа" в верхней части, как в реальных книгах - это возможно?

Извините, моего английского недостаточно, чтобы четко объяснить, чего я хочу, возможно, поэтому я не могу найти ответ в Google.

Когда вы используете настоящую книгу - иногда у вас есть какой-то текст, который нуждается в объяснении, и после этого текста у вас есть знак "*" и пояснение внизу страницы под строкой.

И иногда это не "*", это небольшое число вверху последнего слова. Например, "1", "2" и т. Д., И то же объяснение внизу страницы под строкой.

Что мне нужно знать - есть ли в java/Android SDK какой-либо инструмент, чтобы эти цифры были маленькими и находились на вершине в TextView?

Например, Spanned Strings может это сделать?

4 ответа

Решение

Самый простой способ произвести такой Spanned это с помощью служебного класса Html:

textView.setText(Html.fromHtml("book<sup>1</sup>"));

Вы можете использовать SubscriptSpan или SuperscriptSpan внутри SpannableString.

Протестированная демоверсия

public class MainActivity extends Activity {

    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView) findViewById(R.id.textView);
        textView.setText(Html.fromHtml("Hi this demo test for book reading effect <sup>2</sup>"));
    }

}

Выход:

Вы можете достичь этого 2 пути.

1) Использование SuperscriptSpan:

SpannableString span = new SpannableString("book1");
        span.setSpan(new SuperscriptSpan(), 4, 5,
                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.setText(span, BufferType.SPANNABLE);

2) Использование Html:

txt.setText(Html.fromHtml("book<sup>1</sup>"));
Другие вопросы по тегам