TextView не имеет автоматического размера, несмотря на то, что он установлен одинаково - PullRequest
1 голос
/ 20 марта 2019

Я пытаюсь работать с функцией автоматического определения размера TextView, но она не работает.Я хочу, чтобы тексты моих TextViews уменьшались в размере, если они перемещаются на следующую строку, и, несмотря на установку android:autoSizeStepGranularity="15dp", я почти не вижу никакой разницы.2 TextViews находятся поверх ImageView

Это мой XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".TopImageFragment">

    <ImageView
        android:id="@+id/meme_image_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/click"
        android:scaleType="fitXY"
        android:tag="img1"
        />

    <TextView
        android:id="@+id/top_text_view"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/meme_image_view"
        android:layout_centerHorizontal="true"
        android:autoSizeTextType="uniform"
        android:autoSizeStepGranularity="15dp"
        android:shadowColor="#000"
        android:shadowDx="2"
        android:shadowDy="2"
        android:shadowRadius="2"
        android:textAllCaps="true"
        android:textColor="@android:color/white"
        android:textAlignment="center"
        android:fontFamily="@font/impact"
        android:gravity="center"
        android:textSize="50sp" />


    <TextView
        android:id="@+id/bottom_text_view"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/meme_image_view"
        android:layout_centerHorizontal="true"
        android:autoSizeTextType="uniform"
        android:autoSizeStepGranularity="15dp"
        android:shadowColor="#000"
        android:shadowDx="1.5"
        android:shadowDy="1.3"
        android:shadowRadius="1.6"
        android:textAllCaps="true"
        android:textColor="@android:color/white"
        android:textAlignment="center"
        android:fontFamily="@font/impact"
        android:gravity="center"
        android:textSize="50sp" />

</RelativeLayout>

А вот пример того, о чем я говорю:

enter image description here

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Высота текстового представления установлена ​​на wrap_content.Они будут автоматически увеличиваться, чтобы вместить весь текст перед изменением размера текста.

Выберите один из них в зависимости от вашего варианта использования (со своими собственными значениями, конечно):

android:layout_height="100dp"

или

android:layout_height="wrap_content"
android:maxHeight="100dp"
0 голосов
/ 20 марта 2019

Чтобы использовать set android: autoSizeTextType = "iform ", вам необходимо обновить версию Api.Этот атрибут не работает с версией Api менее 26.

...