Android | 自动调整文本大小的 TextViews

统信UOS安装Node.js v18环境 【代码】统信UOS安装Node.js v18环境。 阅读详情

简评: Auto-Sizing TextViews —— 当 TextView 的布局边界尺寸发生变化时,文本大小可以跟着自动缩放调整。

有时候我们需要 TextView 根据放入的内容来改变其文本大小,之前 Android 对此并没有太多的支持,在 Android O 之后,新增了这项功能。让我们看看是怎么一回事 ~

首先,在 build.gradle 文件中添加 v26 支持库或更高的版本。

implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'

通过使用支持库,此功能可以兼容 Android 4.0 及更高的版本。然后添加一个 TextView:

<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:text="Hello Any Small Text Goes Here"/>

现在在 TextView 中添加 app:autoSizeTextType=“uniform”:

<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    app:autoSizeTextType="uniform"
    android:text="Hello Any Small Text Goes Here"/>

普通 TextView 和 自动调整大小的 TextView

你也可以使用这行代码在 Java/Kotlin 执行此操作

TextViewCompat.setAutoSizeTextTypeWithDefaults(myTextView, 
TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);

如果在 XML 文件中设置了自动调整大小,则不建议将该值"wrap_content"用于layout_width或layout_height的某个属性TextView。

根据需要,还有两种方法可以调整文本大小:

  1. Granularity(粒度型)
  2. Preset Sizes(预置大小型)

粒度型

此模式下,通过设置最小值和最大值来确定一个文本大小变化范围,然后设置一个变化粒度值,TextView 就能够以该粒度值为增减变量,在变化范围内动态缩放文本大小。

在 XML 中,可以这样完成:

app:autoSizeMaxTextSize=”100sp” 
    app:autoSizeMinTextSize=”12sp” 
    app:autoSizeStepGranularity=”2sp” 
    app:autoSizeText=”uniform”

在 Java/Kotlin,可以通过调用以下方法来实现:

TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(TextView textview, int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit); 

// Example
TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(myTextView, 12, 100, 2, TypedValue.COMPLEX_UNIT_SP);

预置大小

TextView 可以根据预置的值自动调整文本大小。

在 XML 中,使用 autoSizePresetSizesautoSizePresetSizes布局文件中的属性

android:autoSizeText=”uniform” 
    android:autoSizePresetSizes=”@array/autosize_text_sizes”

要将数组作为资源访问,在 res/values/arrays.xml 文件中定义数组

<array name=”autosize_text_sizes”> 
    <item>10sp</item> 
    <item>12sp</item> 
    <item>20sp</item> 
    <item>40sp</item> 
    <item>100sp</item> 
</array>

在 Java/Kotlin 可以这样实现:

TextViewCompat.setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit);

// Example
int[] sizes = getContext().getResources().getIntArray(R.array.autosize_text_sizes)
TextViewCompat.setAutoSizeTextTypeUniformWithPresetSizes(myTextView, sizes, TypedValue.COMPLEX_UNIT_SP);

关于 Auto-Sizing TextViews 就先介绍到这里 ~


原文链接:Auto-Sizing TextViews in Android
推荐阅读:怎样减少 Android 应用包 60% 的大小?

APP开发实战177-Autosizing TextViews(自动调整文字大小的TextViews) 自动调整文字大小的TextViews   Android O允许开发人员制定TextView,可以基于TextView的特性和边界布局自动放到文字或缩小文字以填充布局空间。这使得更容易依据不同尺寸的屏幕和不同的文本内容优化文字尺寸。 从26.0 Beta版的支持库开始,支持此功能运行在装了Android O之前的系统的设备上。这个库支持Android4.0(API level 14)及更高的 阅读详情

相关推荐

UDS诊断入门第一课:手把手教你玩转0x10会话控制服务(附ISO14229实战解析)

刚接触汽车电子诊断的工程师们,往往会被厚厚的ISO 14229标准文档和各种专业术语吓退。但就像学习编程要从"Hello World"开始一样,掌握UDS协议的最佳切入点就是0x10诊断会话控制服务。这个看似简单的服务,实际上是整个诊断系统的"钥匙"——它决定了ECU(电子控制单元)当前处于何种工作模式,直接影响着其他诊断服务的可用性。 在实际车辆诊断中,ECU默认处于DefaultSession模式,这种模式下许多高级诊断功能是被禁用的。想象一下你正在开发一个需要刷写ECU固件的工具,如果连最基本的会

weixin_30402343的博客 393

统信系统专业版(UOS)安装node环境

默认安装的node是10.*的,在专业版中,安装完npm之后当你去查看npm信息的时候,很可能会出现报错原因是:UOS对node的支持问题,要解决这个问题,只能通过其他渠道得到完整的包文件,然后复制到对应的路径。或者直接到官网下载压缩包,然后指定路径进行使用。 编辑环境变量文件 然后在terminal中输入命令,让环境变量生效 这个时候,去查询npm或者node的版本,看,生效了。...

5724

Duplicate Cleaner Pro 5.16 保姆级教程:如何用哈希值精准清理重复文件(附音频/视频模式详解)

本文详细介绍了Duplicate Cleaner Pro 5.16如何利用哈希值技术精准清理重复文件,特别针对音频、视频和图片等多媒体文件提供了专业解决方案。通过哈希算法比对和多媒体特征识别,帮助用户高效管理存储空间,提升文件整理效率。

weixin_27032989的博客 565

UOS安装Node.js环境

UOS安装Nodejs环境

weixin_45439281的博客 3800

用废旧汽车电池DIY家用UPS:手把手教你低成本搭建Wi-Fi不断电系统

本文详细介绍了如何利用废旧汽车电池DIY低成本家用UPS系统,确保Wi-Fi设备在断电时持续供电。通过精选材料、电路搭建和安全防护,实现高效稳定的电源转换与智能切换,成本仅为市售UPS的三分之一。特别适合家庭办公和远程工作者提升网络供电可靠性。

weixin_29200485的博客 464

密码学:一文看懂Base64算法

Base64常常在我们开发中出现,我们可能只知道它是一串乱码(看不懂的符号),知道有时候知道我们需要把一些数据进行base64编码,有时候需要进行Base64解码。但是却不知道它的作用是什么?它存在的意义是什么?还有它是如何生成的?如何编码和解码?上述的疑问相信在你读完本篇文章之后烟消云散。下面开始正文。Base64是什么?它和加密解密操作有什么关系吗?没错,这就是经过Base64编码后的字符串。对它解码后,我们获得以下内容点个关注,是对我持续创作的最大的鼓励!

Shujie 1万+

【原创】统信UOS如何安装最新版Node.js(20.x)

注意直接使用命令安装十有八九会预装10.x的老旧版本Node.js,如果已经安装的建议删除后安装如下方法重装。

水墨熊猫 3015

香橙派5上跑DeepSeek-R1的避坑指南:从模型下载到NPU加速全流程解析

本文详细解析了在香橙派5(RK3588)上部署DeepSeek-R1蒸馏模型的完整流程与优化技巧。内容涵盖从系统配置、RKLLM工具链编译、模型转换到NPU加速调优的全过程,重点分享了如何利用RK3588的NPU算力实现高效推理,并提供了常见问题的解决方案,为边缘设备部署LLM提供了实用指南。

CAT789的专栏 717

UOS系统安装node.js,vue

UOS系统安装node.js和npm

u011632614的博客 1855

【原创,解决CLodop安装后无法调用的问题】已经安装过CLodop,但是网页上仍然提示“clodop云打印服务(localhost本地)未安装启动,点击这里执行安装....”

在某些国内web网站中,需要安装一个名为“CLodop”的插件;但在实际使用过程中,即使安装了CLodop插件,网页试图调用它时还是会提示“clodop云打印服务(localhost本地)未安装启动,点击这里执行安装...”,且无法完成相关打印任务 本文属原创博客,分析了解决CLodop无法被调用的问题,并附上了原理和解决方法,本质上是和跨域请求以及CORS类安全组策略相关

link_in_csdn的博客 2万+

全面分析总结解决Could not transfer artifact org.apache.maven.plugins等此类问题的方法

全面分析总结解决Could not transfer artifact org.apache.maven.plugins,Could not transfer artifact xxx from/to xxx等此类问题的方法

ccjjjjdff的博客 1万+

Android O —— Autosizing TextViews 自动调整文本大小的TextView

Autosizing TextViews 粒度型(Granularity) 预置大小型(Preset sizes)

dale999的博客 1万+

OpenClaw 性能调优五步法

本文介绍了优化OpenClaw性能的五步方法,将响应时间从3秒降至300毫秒。首先建立性能基线,分析模型加载、上下文检索等主要瓶颈。五步优化包括:1)启用模型缓存减少60%延迟;2)优化记忆检索策略降低25%延迟;3)并行化工具调用节省40%时间;4)智能选择轻量级模型减少50%推理时间;5)启用流式输出改善70%感知延迟。最终整体性能提升10倍,并建议建立持续监控机制。这些优化方法经过实战验证,适用于不同规模的OpenClaw部署场景。

刘一说的IT专栏 1431

android xml java混合编程_Android | 自动调整文本大小的 TextViews

简评:Auto-Sizing TextViews —— 当 TextView 的布局边界尺寸发生变化时,文本大小可以跟着自动缩放调整。有时候我们需要 TextView 根据放入的内容来改变其文本大小,之前 Android 对此并没有太多的支持,在 Android O 之后,新增了这项功能。让我们看看是怎么一回事 ~首先,在 build.gradle 文件中添加 v26 支持库或更高的版本。impl...

weixin_39661129的博客 185

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android文字自动缩小,android – 在RecyclerView中自动调整TextViews会导致文本大小减小...

我试图在RecyclerView中使用Autosizing TextViews,但是当我滚动几次时,文本变得如此之小以至于它显然无法正常工作.我的TextView示例:android:id="@+id/textview_unit_title"android:layout_width="@dimen/tile_image_size"android:layout_height="wrap_conten...

weixin_33358099的博客 1594

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android 8.0新特性 — Autosizing TextViews 自动调整大小TextView

Android 8(API Level 26)可以指定TextView的文本根据内容长短自动缩放以填充textView。使用场景例如在一个textView中显示文字,希望文字多的时候字体自动缩小文字,文字少的时后自动放大文字。TextView 中新增了几个属性&lt;TextView android:layout_width="match_parent" android:layou...

liuliuh51的博客 1493

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android Autosizing TextViews

https://developer.android.com/guide/topics/ui/look-and-feel/autosizing-textviewAutosizing TextViews https://blog.youkuaiyun.com/dale999/article/details/70145152 Android O —— Autosizing TextViews 自动调整文本...

weixin_34102807的博客 99

android text自适应,Android Oreo--Autosizing TextViews自适应TextView

topLogo.gifThe phantom menace我在开发的时候遇到这样一个恶心的场景:一个TextView(本业务中是指horde_hall_name)的宽、高、字体大小(maxFontSize=20dp)都是固定的,但是文案不固定,文案短的话没问题,文案太长的话会显示不全。这给我造成了危机感(menace),我想到的解决方案是根据TextView的宽度来找到不大于maxFontSize...

weixin_30106425的博客 347

为什么选择BabushkaText?Android文本样式工具对比分析

BabushkaText是一款专为Android开发者设计的文本样式工具,它提供了一种简单直观的方式来定制TextView的样式,无需直接处理复杂的Spannable API。本文将深入分析BabushkaText的核心优势,并与其他Android文本样式方案进行对比,帮助你快速掌握这款高效工具。 ## 📌 BabushkaText核心优势解析 ### 1. 简化的Piece分段式设计 Ba

gitblog_00322的博客 990

从0开始认识android(十九):8.0字体大小自适应的Autosizing TextViews

  8.0开始,在不同尺寸的屏幕上,TextView可以设置autoSizeTextType属性使文字大小填满整个TextView控件。例如下面的一个TextView: &amp;amp;lt;TextView android:id=&amp;quot;@+id/myview&amp;quot; android:layout_width=&amp;quot;match_parent&amp;quot; android:

jack_bear_csdn的博客 1101

android textview 显示不全_Android 字体适配方案总结

前言在app实际生产开发中,字体适配是一个绕不开的话题,测试总是会用各种系统字体大小试一遍看着不舒服就给你丢一个bug,说这个页面适配有问题,不是字体太大就是自卑遮住了,显示不全。然后自己百度了一下解决方法,总结以下几种简单的解决方案。场景一场景一测试人员在测试过程中经常能遇到文字显示不全的场景,而测试有需要我们显示所有信息,不能有省略号和遮挡,可是空间就这么点,又不像ios一样文字显示不下就会自...

weixin_39890327的博客 2824

CPU量化后多模态能力还完整吗?gemma-4-26B-A4B-it-w4a16-llmcompressor的视觉/音频路径与language_model_only机制

gemma-4-26B-A4B-it-w4a16-llmcompressor 是 AMD 使用 LLM Compressor 对 Gemma 4 26B MoE 模型做的 4-bit W4A16 CPU 量化版本,专为 AMD EPYC 纯 CPU 推理优化。很多人关心:**CPU 量化后,它原来的视觉/音频等多模态能力还完整吗?**这篇文章带你读配置文件与量化配方,看清视觉路径、音频路径的真实状

gitblog_00066的博客 828

Android中TextView字体适配

有这样一个需求,界面上需要显示一个标题文本,但是该标题的文案长度是不固定的,要求标题的文案全部显示出来,不能用省略号显示,并且标题所占的宽高是固定的。例如标题的文案为 “这是标题,该标题的名字比较长,产品要求不换行全部显示出来”,如下图所示,第一个为不符合需求的标题,第二个为符合需求的标题。 也就是说 TextView 控件的宽高需要固定,然后根据标题的文案长度动态改变文字大小,也就是上图第二个...

Virgil_K2017的博客 1381

鸣潮 ok-ww 自动挂机完整指南:10 分钟装好,从一键日常到无人值守

装好 ok-ww,鸣潮的日常就能交给它:自动战斗、刷声骸、清体力一条龙。原理一句话——图像识别读游戏画面,再模拟鼠标键盘操作,不读内存、不改文件。下面从装好软件到第一个任务跑完,带你完整走一遍。 ## 🛠️ 开跑之前:环境硬要求和两条安装路 这节解决"装不上、跑不动"的问题,照清单核一遍,后面大部分怪事都不会发生。 环境硬性要求: - Windows 10/11 64 位 - 16:9

gitblog_01085的博客 301
上一篇: 为什么 Android 开发者都应该尝试一下 Anko?
下一篇: 关于 Google 公司的一些趣闻
极光推送
博客等级 码龄14年 109粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值