Проблема с автоматическим масштабированием текста EditView
Возникла проблема с уменьшением текста по мере достижения границ EditText.
<EditText
android:id="@+id/text_view"
android:paddingLeft="50dp"
android:paddingRight="50dp"
style="@style/SignText"
android:layout_width="match_parent"
android:layout_height="@+id/image_view"
android:gravity="center"
android:maxLines="2"
android:textSize="60sp"
app:autoSizeStepGranularity="150dp"
app:autoSizeTextType="uniform"
app:autoSizeMaxTextSize="60dp"
app:autoSizeMinTextSize="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:targetApi="o"
tools:text="welcome"
tools:textColor="@color/cyan" />
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Как вариант можно использовать библиотеку либо самому что-то слепить. Вот библиотека которая вам должна подойти. Подключаем в build.gradle:
implementation 'com.github.ViksaaSkool:AutoFitEditText:53238e2d29'
добавляем в разметку данное поле для ввода:
<com.autofit.et.lib.AutoFitEditText
android:id="@+id/rET"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:background="@color/primary"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center_vertical|center_horizontal"
android:hint="@string/hint"
android:isScrollContainer="false"
android:inputType="textMultiLine|textNoSuggestions"
android:maxLength="240"
android:textColor="@android:color/white"
android:textColorHint="@android:color/white"
android:textSize="90sp" />
делаем все необходимые настройки в активности:
//in onCreate in Activity/Fragment
mAutoFitEditText.setEnabled(true);
mAutoFitEditText.setFocusableInTouchMode(true);
mAutoFitEditText.setFocusable(true);
mAutoFitEditText.setEnableSizeCache(false);
//might cause crash on some devices
mAutoFitEditText.setMovementMethod(null);
// can be added after layout inflation;
mAutoFitEditText.setMaxHeight(330);
//don't forget to add min text size programmatically
mAutoFitEditText.setMinTextSize(60f);
AutoFitEditTextUtil.setNormalization(this, mRootView, mAutoFitEditText);
и у вас будет масштабирование текста в поле для ввода. Вот есть еще подобная библиотека и туториал