【问题标题】:TextView does not auto-size despite setting it to uniform尽管将 TextView 设置为统一,但它不会自动调整大小
【发布时间】:2019-03-20 05:37:53
【问题描述】:

我正在尝试使用 TextView 的默认自动调整大小功能,但它不起作用。我希望我的 TextViews 的文本在移动到下一行时减小大小,尽管设置了android:autoSizeStepGranularity="15dp",但我几乎看不到任何区别。 2 个 TextView 位于 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>

下面是我所说的一个例子:

【问题讨论】:

  • 您将高度设置为wrap_content。视图高度没有限制,所以它只会增长。如果您将其设置为精确值,则文本大小会发生变化。
  • @EugenPechanec 哈哈,真是个愚蠢的错误。非常感谢。如果您将其作为完整答案发布,我会接受并投票。

标签: java android textview imageview


【解决方案1】:

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

根据您的用例选择其中一项(当然是您自己的价值观):

android:layout_height="100dp"

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

【讨论】:

  • 赞成并接受!如果您认为这是一个很好的问题,您能否也给我一个赞成票?
  • 如果点赞不被用作高级用户来解决问题的一种方式,我不会“乞求”点赞,因为这与他们对什么的主观理解不相符好问题是,与 Stackoverflow 描述的好问题相反。我在另一个选项卡中使用 SO 指南问我的问题,但我有人将它们关闭,因为他们获得了特权。顺便提一句。如果您认为这是一个问得很好的问题,我要求您投赞成票。因此,在一天结束时,您根据自己的优点投了赞成票。
猜你喜欢
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多