Верхний и нижний индекс форматирования Android

У меня есть массив строк, которые я хочу отобразить в правильном формате для своих TextView. Я уже рассматривал использование подхода Html.fromHtml(), опубликованного здесь но я все еще не могу найти свое конкретное решение.

Проблема, с которой я сталкиваюсь, заключается в том, что я не уверен, как отформатировать только часть строки. Символ «^» должен быть надстрочным индексом, а символ подчеркивания «_» должен быть нижним индексом. Все, что заключено в скобки "{}", означает, что верхний/нижний индекс должен применяться ко всему, что находится внутри него.

Например: строка ^2S_{1/2} должна отображаться как: 2S1/2

Другой пример: 1s^2 следует отформатировать в текстовом представлении, чтобы оно отображалось как таковое: 1S2

Последние пару часов я был в тупике. Вся помощь приветствуется. Благодарю вас!


person ChallengeAccepted    schedule 17.09.2015    source источник


Ответы (1)


В вашем примере для форматирования этого ^2S_{1/2} вы напишете свое строковое значение как

"‹sup›‹маленький›2‹/маленький›‹/sup›S ‹sub›‹малый›½‹/маленький›‹/sub›».

И пишите символы в своих кодах, а также используйте Html.fromHtml() в вашем методе TextView setText().

person aquib    schedule 17.09.2015
comment
Спасибо. Я также обнаружил, что если вы попытаетесь объединить строку с объектом Spanned, она не будет форматирована. Поэтому не выполняйте конкатенацию, например: myTextView.setText(myString + Html.fromHtml(sup›‹small›2‹/small› )); - person ChallengeAccepted; 17.09.2015