Вопрос новичка в Java - на всех публикациях для автоматического масштабирования текста никто не указывает, как вы на самом деле используете предоставленный класс. Похоже, что одним из лучших решений является Чейз в Текстовое представление Auto Scale Text для размещения в пределах
У кого-нибудь есть идеи, как его использовать? Например:
String bigTextString = "This is a test!";
TextView t = (TextView)findViewById(R.id.big_text);
t.setTextSize(returnFontSize(bigTextString));
t.setText(bigTextString);
returnFontSize не существует и показан только для иллюстрации. Класс AutoResizeTextView правильно настроен в своем собственном файле.
Спасибо (игнорируйте краткий комментарий ниже, так как в StackOverflow есть ошибка, которая не позволяет повторно редактировать комментарий, и он также ограничен 512 символами).
Я, должно быть, все еще что-то упускаю. Если я использую только две предложенные строки, где вы передаете текстовую строку? Я пробовал что-то похожее, но оно просто вылетает при запуске, что имеет смысл.
AutoResizeTextView t = new AutoResizeTextView(this);
linearMain.addView(findViewById(R.id.big_text));
addView завершается с ошибкой «IllegalStateException: указанный дочерний элемент уже имеет родителя. Сначала необходимо вызвать removeView () для родительского дочернего элемента». Это выглядит странно, поскольку я не хочу удалять представление (я думаю) и я не понимаю, как он имеет представление о строке, выводимой на экран.
Является ли addView действительно необходимым, поскольку он уже определен в макете.
Я просто хочу передать ему текст. Например:
TextView t = (TextView)findViewById(R.id.big_text);
t.setTextSize(textSize);
t.setTextColor(textColor);
t.setText(bigTextString);
Это работает, за исключением того, что Android плохо вписывается в текст на экране в зависимости от того, что находится в "bigTextString".