首页 > 解决方案 > 尽管将 TextView 设置为统一,但它不会自动调整大小

问题描述

我正在尝试使用 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>

这是我正在谈论的一个例子:

在此处输入图像描述

标签: javaandroidtextviewimageview

解决方案


您的文本视图的高度设置为wrap_content. 在更改文本大小之前,它们会自动增长以适应所有文本。

根据您的用例选择其中之一(当然,使用您自己的值):

android:layout_height="100dp"

或者

android:layout_height="wrap_content"
android:maxHeight="100dp"

推荐阅读