TextView系列:给定宽度,根据内容长度,自动改变字体大小

Posted zhangjin1120

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TextView系列:给定宽度,根据内容长度,自动改变字体大小相关的知识,希望对你有一定的参考价值。

上效果图:

在同样宽度200dp下,内容不同,字体大小不同。

    implementation 'me.grantland:autofittextview:0.2.1'
  • 必须设置几个属性才有效:
		android:singleLine="true"
        android:maxLines="1"
        android:gravity="center"
  • 完整布局代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/tv1"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:singleLine="true"
        android:maxLines="1"
        android:layout_centerInParent="true"
       />
    <me.grantland.widget.AutofitTextView
        android:id="@+id/ftv1"
        android:layout_below="@id/tv1"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:singleLine="true"
        android:maxLines="1"
        android:textSize="40sp"
        android:gravity="center"
        android:text="Hello World!"
        android:background="#ff0000"
        />

    <me.grantland.widget.AutofitTextView
        android:id="@+id/ftv2"
        android:layout_below="@id/ftv1"
        android:layout_width="120dp"
        android:background="#00ff00"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:singleLine="true"
        android:maxLines="1"
        android:textSize="40sp"
        android:gravity="center"
        android:text="Hello Thanks every one"
        />

    <me.grantland.widget.AutofitTextView
        android:id="@+id/ftv3"
        android:layout_below="@id/ftv2"
        android:layout_width="120dp"
        android:background="#0000ff"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:singleLine="true"
        android:maxLines="1"
        android:gravity="center"
        android:text="Hello mom"
        />
</RelativeLayout>

以上是关于TextView系列:给定宽度,根据内容长度,自动改变字体大小的主要内容,如果未能解决你的问题,请参考以下文章

Android根据文字长度自动调整字号的TextView

根据内容大小属性设置 UIText 视图的宽度

iOS 根据给定宽度自适应文字大小

Android ConstraintLayout中TextView组件内容过长超出屏幕问题

如何根据文本视图的长度对齐文本视图

无法控制 UITextView 的宽度