Android Vertical Text view - отображать символы один под другим, как показано ниже - PullRequest
0 голосов
/ 12 марта 2019

Я хочу отображать текст в вертикальном виде (то есть символы должны располагаться один под другим, как показано ниже)
а
б
с
д

Я хочу сделать это в едином текстовом представлении. Мы можем перевернуть весь текст, используя android: toDegrees = "- 90" или "90", но я хочу отобразить, как показано выше, что не достигается с помощью тега android: toDegress.

Ценю вашу помощь!

UPDATE Я получу String из другого приложения через AIDL, который может быть изменен в соответствии с отправителем, кроме того, он отправит мне флажок для отображения текста в вертикальном или горизонтальном направлении. На основании флага я должен отображаться соответственно. У меня нет проблем с горизонтальным обзором, так как он используется по умолчанию, но для его отображения по вертикали (как показано выше) мне нужна помощь.

Ответы [ 2 ]

1 голос
/ 12 марта 2019

Если строка является динамической, то вы можете добавить \n после каждого символа.

private String build(String str){
    if(!TextUtils.isEmpty(str)) {
        StringBuilder builder = new StringBuilder();
        builder.append(str.charAt(0));
        for (int i = 1; i < str.length(); i++) {
                builder.append("\n"+str.charAt(i));
        }
        return builder.toString();
    }
    return "";
}


 textView.setText(build("abcd"));

Она будет отображаться вертикально.Таким образом, текст может выйти за границы, поэтому в этом случае вы должны сделать прокрутку TextView.

0 голосов
/ 12 марта 2019

Вы можете добавить разрыв строки к вашей строке с помощью \n или <br>

С \n:

<string name="sample_string">a\nb\nc\nd</string>
textView.setText(R.string.sample_string)

С <br>:

<string name="sample_string"><![CDATA[a<br />b<br />c<br />d]]></string>
textView.setText(Html.fromHtml(context.getString(R.string.sample_string))
...