Как уменьшить шрифт, чтобы он соответствовал внутренней ширине обзора в Android? - PullRequest
0 голосов
/ 05 декабря 2018

Допустим, у нас есть однострочное текстовое представление с фиксированной шириной.Мы хотим отобразить строку в нем, но мы еще не знаем, какова длина строки.

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

В IOS это выполняется с помощью this :

ДО:

enter image description here

enter image description here

enter image description here

ПОСЛЕ:

enter image description here

enter image description here

Что такое эквивалент в Android?

Я консультировался с этим и пыталсячтобы проверить это в коде:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tv = findViewById(R.id.tvc);
        tv.setText("aa aaa a aaaaaaa aaaadfgd gsfg fsdg dfs gdfs gds fg dsg dsg sdfg dsf g zzzzzzzzzz");

        TextViewCompat.setAutoSizeTextTypeWithDefaults(tv, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);


    }

, но был встревожен, обнаружив, что он не сжимает шрифт автоматически, чтобы соответствовать ширина , а скорее расширение шрифта до размера высота ... с укороченной строкой еще больше.

Обратите внимание: этот вопрос отличается от ( Автоматическое масштабирование текста TextView для соответствияв пределах ), потому что оно не имеет того же требованияs: Я говорю строго о однострочном текстовом просмотре с ограничением width ... и ни один из ответов на этот вопрос не является удовлетворительным.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

либо вы используете AutofitTextView , либо вы можете использовать обычное TextView с добавлением свойства ellipsize:

<TextView ...
    android:lines="1"
    android:ellipsize="end"
    />

Это свойство добавит три точки, если длина строки большечем ширина textview.

0 голосов
/ 05 декабря 2018

Я предлагаю AutofitTextView .В Android автофит TextView не поддерживается в исходном формате, поэтому вам нужно настроить его.

...