Android谷歌官方的自适应TextView字体大小的解决方案

简介: Android谷歌官方的自适应TextView字体大小的解决方案有时候UI限定了TextView宽度或者布局的控件空间尺寸不足,而此时的TextView里面的文本就无法完全正常显示。

Android谷歌官方的自适应TextView字体大小的解决方案

有时候UI限定了TextView宽度或者布局的控件空间尺寸不足,而此时的TextView里面的文本就无法完全正常显示。自适应TextView文本大小字体以适应限定宽度的TextView有不少方法,现在给出一种Android官方的自适应字体方法,直接在xml即可自适应。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_blue_bright"
        android:gravity="center"
        android:maxLines="1"
        android:text="zhang phil @ csdn"
        android:textColor="@android:color/white"
        android:textSize="80dp" />

    <TextView
        android:id="@+id/text"
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:autoSizeMaxTextSize="80dp"
        android:autoSizeMinTextSize="2dp"
        android:autoSizeTextType="uniform"
        android:background="@android:color/holo_red_light"
        android:gravity="center"
        android:maxLines="1"
        android:text="zhang phil @ csdn"
        android:textColor="@android:color/white"
        android:textSize="80dp" />
</LinearLayout>


输出结果:


目标是完整显示“zhang phil @ csdn”字符串,两个TextView都特意把字体大小和TextView的宽度均设为80dp(故意制造无法完整显示完全的情景)。作为对比,蓝色的TextView没有做自适应处理,导致“zhang phil @ csdn”只能显示一个“z”,而红色的做自适应处理,能自适应的缩小字体完整的显示全部文本“zhang phil @ csdn”。

关键代码:

        android:autoSizeMaxTextSize="80dp"
        android:autoSizeMinTextSize="2dp"
        android:autoSizeTextType="uniform"

注意要把属性maxLines设置为1,否则可能会换行。


附录:
1,《Android TextView利用measureText自适应文本字体大小宽度》链接:https://blog.csdn.net/zhangphil/article/details/79891765

相关文章
|
13天前
|
安全 Shell Android开发
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
28 0
|
1月前
|
XML Android开发 数据格式
android点击FrameLayout、LinearLayout等父布局没响应的原因以及解决方案
android点击FrameLayout、LinearLayout等父布局没响应的原因以及解决方案
30 2
|
13天前
|
安全 编译器 API
Android HAL深入探索(5): 调试HAL报错与解决方案
Android HAL深入探索(5): 调试HAL报错与解决方案
16 1
|
13天前
|
存储 应用服务中间件 网络安全
Android 网络链接稳定性测试解决方案
Android 网络链接稳定性测试解决方案
19 0
|
22天前
|
编译器 调度 Android开发
构建高效Android应用:Kotlin协程的优雅解决方案
【4月更文挑战第14天】 在移动开发领域,性能优化和资源管理是提升用户体验的关键因素。随着Kotlin语言在Android平台上的普及,协程作为其核心特性之一,为开发者提供了一种轻量级的并发处理手段。本文将深入探讨Kotlin协程在Android应用中的运用,通过实例分析其如何简化异步任务,提升应用响应性,并保证代码的简洁与可维护性。我们将透过源码剖析、性能对比及最佳实践,揭示协程在现代Android开发中的重要角色。
|
28天前
|
XML Java Android开发
Android控件之基础控件——进度条类的view——TextView、Checkbox复选控件、RadioButton单选控件、ToggleButton开关、SeekBar拖动条、menu、弹窗
Android控件之基础控件——进度条类的view——TextView、Checkbox复选控件、RadioButton单选控件、ToggleButton开关、SeekBar拖动条、menu、弹窗
|
2月前
|
Android开发
Android开发小技巧:怎样在 textview 前面加上一个小图标。
Android开发小技巧:怎样在 textview 前面加上一个小图标。
12 0
|
2月前
|
JSON Android开发 数据格式
android 使用GSON 序列化对象出现字段被优化问题解决方案
android 使用GSON 序列化对象出现字段被优化问题解决方案
|
9月前
|
IDE Java 开发工具
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8的解决方案
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8的解决方案
|
4月前
|
存储 前端开发 测试技术
Android 官方架构中的 UseCase 该怎么写?
Android 官方架构中的 UseCase 该怎么写?
71 0