Я искал способ автоматического подгонки текста внутри текстового поля. Благодаря моему поиску я нашел много решений, таких как:
Но, как и многие другие, это не решает мою проблему. Они работают не так, как ожидалось, когда мы используем TextView с многострочным.
В основном моя цель такова:
Как вы можете видеть, текст изменяется на ширину, высоту, а также обращает внимание на разрыв строки, создавая многострочный текст. Также возможно изменить шрифт.
Одна из моих идей, чтобы решить это, была примерно такая:
int size = CONSTANT_MAX_SIZE;
TextView tv = (TextView) findViewById(R.id.textview1)
while(Math.abs(tv.getMeasuredHeight()) >= TEXTVIEW_MAX_HEIGHT) {
size--;
tv.setTextSize(size);
tv.measure(MeasureSpec.UNSPECIFIED,MeasureSpec.UNSPECIFIED);
i++;
}
CONSTANT_MAX_SIZE - это константа, определяющая максимальный размер шрифта (оформление текста в TextView)
TEXTVIEW_MAX_HEIGHT - это константа, которая определяет максимальный размер, который может иметь текстовое изображение.
Это вызывалось каждый раз, когда текст в текстовом виде был изменен.
Textview xml был примерно таким:
<TextView
android:id="@+id/textview1"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:singleLine="false"
android:inputType="textMultiLine"
android:text=""
android:textSize="150sp" />
Поскольку ширина будет ограничена в XML, нужно учитывать только высоту представления, так как при ее настройке андроид при необходимости автоматически создавал многострочный.
Хотя это потенциальное решение не работает отлично (далеко от него), и оно не поддерживает изменение размера (при удалении текста).
Любые предложения и/или идеи?