Автоматическое изменение размера различного текста до уникального размера - PullRequest
0 голосов
/ 18 июня 2020

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

Чтобы настроить изображение соответствующим образом, я сделал высоту и ширину изображения соответствующими родительским с некоторыми границами.

Но когда я настроил текст таким же образом, размер текста отличался от размера из-за разницы в символах. Есть ли способ решить эту проблему?

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

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/layout_background"
    tools:context=".HomeActivity">

<androidx.cardview.widget.CardView
        android:id="@+id/cardsenior"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_margin="0dp"
        android:clickable="true"
        android:foreground="?android:attr/selectableItemBackground"
        app:cardCornerRadius="30dp"
        app:layout_constraintBottom_toTopOf="@+id/guideline2"
        app:layout_constraintDimensionRatio="w,13:15"
        app:layout_constraintEnd_toStartOf="@+id/guideline12"
        app:layout_constraintStart_toStartOf="@+id/guideline11"
        app:layout_constraintTop_toTopOf="@+id/guideline1">

        <androidx.appcompat.widget.AppCompatImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginHorizontal="25dp"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="40dp"
            android:background="@drawable/circlepurple"
            android:src="@drawable/senior_icon" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_marginHorizontal="8dp"
            android:layout_marginBottom="10dp"
            android:gravity="center"
            android:textAlignment="gravity"
            android:maxLines="1"
            android:autoSizeTextType="uniform"
            android:autoSizeMinTextSize="6dp"
            android:autoSizeMaxTextSize="25dp"
            android:autoSizeStepGranularity="2dp"
            android:fontFamily="@font/carter_one"
            android:text="Senior Commitee"
            android:textColor="@color/cardtext" />
    </androidx.cardview.widget.CardView>

<androidx.cardview.widget.CardView
        android:id="@+id/cardaccounts"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_margin="0dp"
        android:clickable="true"
        android:foreground="?android:attr/selectableItemBackground"
        app:cardCornerRadius="30dp"
        app:layout_constraintBottom_toTopOf="@+id/guideline4"
        app:layout_constraintDimensionRatio="13:15"
        app:layout_constraintEnd_toStartOf="@+id/guideline12"
        app:layout_constraintStart_toStartOf="@+id/guideline11"
        app:layout_constraintTop_toTopOf="@+id/guideline3">

        <androidx.appcompat.widget.AppCompatImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginHorizontal="25dp"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="40dp"
            android:background="@drawable/circlered"
            android:src="@drawable/accounts_icon" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_marginHorizontal="8dp"
            android:layout_marginBottom="10dp"
            android:gravity="center"
            android:textAlignment="gravity"
            android:maxLines="1"
            android:autoSizeTextType="uniform"
            android:autoSizeMinTextSize="6dp"
            android:autoSizeMaxTextSize="25dp"
            android:autoSizeStepGranularity="2dp"
            android:fontFamily="@font/carter_one"
            android:text="    Accounts    "
            android:textColor="@color/cardtext" />
    </androidx.cardview.widget.CardView>

</androidx.constraintlayout.widget.ConstraintLayout>

enter image description here

...