【Android】AppCompatTextView的使用详解

文字自适应大小AppCompatTextView使用 AppCompatTextView作用是根据字数自动调整字号大小,防止字数太多时文字被截断或者省略号的出现。而传统的TextView无法自动调整文字大小,超出会截断或者显示省略号。比如有一个TextView,它的宽度最大是100dp,而它的文字长度不确定,一般是由服务端下发。这个时候产品需求是不管多少都要显示完全,文字多时自动变小,文字少时自动变大,不允许截断或者出现省略号。这种情况下,TextView就不满足我们的需要,AppCompatTextView就闪亮登场了。下面是一个使用示例: 当字数比较少 阅读详情

AppCompatTextView的作用

AppCompatTextView作用是根据字数自动调整字号大小,防止字数太多时文字被截断或者省略号的出现。而传统的TextView无法自动调整文字大小,超出会截断或者显示省略号。

比如有一个TextView,它的宽度最大是100dp,而它的文字长度不确定,一般是由服务端下发。这个时候产品需求是不管多少都要显示完全,文字多时自动变小,文字少时自动变大,不允许截断或者出现省略号。

这种情况下,TextView就不满足我们的需要,AppCompatTextView就闪亮登场了。

AppCompatTextView的使用示例

下面是一个使用示例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp">

    <androidx.appcompat.widget.AppCompatTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:text="A测试字号大小测试字号大小测试字号大小测试字号大小测试字号大小测试字号大小B"
        app:autoSizeTextType="uniform" 
        app:autoSizeMinTextSize="10sp"
        app:autoSizeMaxTextSize="36sp"
        app:autoSizeStepGranularity="1sp"
        />
</LinearLayout>

当字数比较少时,显示效果如下:
在这里插入图片描述
当字数较多时,显示效果如下:
在这里插入图片描述

AppCompatTextView的使用步骤

完整使用步骤如下:

(1)、将TextView替换成AppCompatTextView。

(2)、添加属性:android:maxLines="1" 或者 android:lines="1",设置为单行显示。
注意千万不要用android:singleLine="true",否则缩放无效。

(3)、添加属性:app:autoSizeTextType="uniform" 设置为字号自动缩放。
这个属性只有两个值:uniform和none,官方解释如下:

    <!-- Specify the type of auto-size. Note that this feature is not supported by EditText,
        works only for TextView. -->
        <attr format="enum" name="autoSizeTextType">
            <!-- No auto-sizing (default). -->
            <enum name="none" value="0"/>
            <!-- Uniform horizontal and vertical text size scaling to fit within the
            container. -->
            <enum name="uniform" value="1"/>
        </attr>

(4)、添加属性:app:autoSizeStepGranularity="1sp" 设置最小缩放步长1sp,不指定时默认1px。

(5)、设置最小字号:app:autoSizeMinTextSize="8sp" ,根据实际情况设置。

(6)、设置最大字号:app:autoSizeMaxTextSize="36sp",根据实际情况设置。

完成以上步骤,即可实现字号自动缩放(适应)。

AppCompatTextView的使用注意事项

(1)、android:layout_width设置成固定值、wrap_content、match_parent都是可以的。

(2)、AppCompatTextView结合RecyclerView使用也是可以的。

(3)、在RecyclerView的Adapter中动态给AppCompatTextView设置文字时,不要使用SpannableString,否则缩放无效。如果一定要用SpannableString可以转化成String用(调用toString()),不过这样SpannableString的作用就无效了。

入门安卓的小问题1:There is no default constructor available in ‘androidx.appcompat.widget.AppCompatTextView‘ 入门安卓的小问题1:There is no default constructor available in ‘androidx.appcompat.widget.AppCompatTextView’ 在Java当中 ,构造函数一般都是创建对象时初始化对象,即为对象成员变量赋初始值。 当类中没有定义构造函数时,系统会指定给该类加上一个空参数的构造函数。这个是类中默认的构造函数。当类中如果自定义了构造函数,这时默认的构造函数就没有了。 当我们要创建一个TextView对象,此对象继承于AppCompatTex 阅读详情

相关推荐

Android开发必备:AppCompatTextView自动调整字号实战指南(附RecyclerView适配技巧)

本文详细介绍了Android开发中AppCompatTextView自动调整字号功能的实现原理与实战技巧,包括XML配置、编程式动态设置以及在RecyclerView中的高级应用。通过合理的参数配置和性能优化,开发者可以轻松解决文本显示不完整的问题,提升用户体验。

weixin_30733003的博客 458

AppCompatTextView的理解

AppCompatTextView能有效的前提是,activity是继承自AppCompatActivity。也就是说单用AppCompatTextView没啥用。还有就是,AppCompatActivity布局中的TextView会被自动替换成AppCompatTextView。首先AppCompatTextView是给低版本用的,5.0之前,高版本之间用TextView就行了。

“点点”专栏 1014

解决Android主题样式Theme或Styles不匹配导致app无法启动的问题总结

不过,后面我尝试使用了NoActionBar后缀的主题时,另外添加了两行设置,话说这里很奇怪,windowNoTitle不能设置为true,底下的windowActionBar需要设置为true(这里可以理解,我代码中使用了getActionBar()),但是windowNoTitle却不能设置为true,可是在app启动之后,title标题栏却已经去掉了。当然了,也可以自定义,如下,你可以根据需要设置item项目,也可以从系统已有的Theme里面copy一些定义过来,然后就可以组合成自己的了。

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 2668

[Android] 聊一下 AppCompatTextView 与 TextView

抛出 1.compat库是如何将TextView替换为AppCompatTextView的? 2.为什么要进行替换? 3.根据替换相关原理,我们可以做哪些事情? Answer1: 第二问: 先从第二问开始吧,AppCompatTextView继承自TextView,是对TextView的一种扩展,因为在5.0中首次推出了MaterialDesign这种设计风格,但是众所周知,5.0推出不可能所...

merbn的博客 5852

Android UI 组件系列(一):TextView 使用详解与常见属性

TextView 是 Android 开发中非常常用的 UI 组件,它不仅支持基本的文本显示,还提供了许多强大的功能和灵活的自定义选项。从简单的文本设置到图文混排、字体样式、阴影效果、富文本、HTML 渲染等,TextView 都能够满足大多数界面展示需求。掌握 TextView 的常见属性和高级特性,可以帮助开发者更加高效地设计和实现复杂的用户界面,使应用界面更加丰富和多样化。

weixin_39339407的博客 2138

基于C#的机器人控制框架:如何将ROS与硬件集成

本文探讨了如何利用C#与ROS(Robot Operating System)集成开发机器人控制系统。通过ROSSharp库和rosbridge中间件,实现了C#与ROS的WebSocket通信,并展示了硬件控制模块的设计方法。文章详细介绍了电机控制的串口通信实现、ROS消息订阅机制,以及性能优化和容错处理策略,最终构建了一个智能小车控制框架的案例。这种C#与ROS的集成方案为机器人开发提供了跨平台支持,同时兼顾了系统的高效性和可靠性。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1138

Android之AppCompatTextView

AppCompatTextView最大的特点就是可以让里面的文字自适应大小,以前要实现这个功能要么自己写代码实现要么使用开源项目,比如:me.grantland.widget.AutofitTextView,但是现在有了google官方的控件AppCompatTextView 参考: Android新增AppCompatTextView自适应字体大小和文本宽度 ...

yzpbright的博客 1135

免费大容量国外网盘测评:冷数据归档与rclone加密接入

云存储的本质,是通过对象存储、冗余编码和分层缓存,把本地磁盘容量问题转化为网络访问与数据管理问题。免费大容量国外网盘常以空间换用户规模或付费转化,容量政策、传输策略、协议支持和退出成本,往往比标称容量更决定长期可用性。支持 WebDAV、S3 兼容和命令行工具的服务,可接入 rclone 等自动化流程,再配合客户端加密与冷热分层,用于冷数据归档、老项目备份和家庭影像保存。理解带宽换算、单文件上限、保活机制与传输一致性后,评估话题型大容量网盘与专业向协议网盘,就能把免费空间纳入可靠存储层。围绕免费大容量国外网

weixin_31292729的博客 210

Android AppCompatTextView自适应字体大小和文本宽度

AppCompatTextView它是Android标准TextView的增强: AppCompatTextView最显著的特点是可以自适应字体宽度大小变化。这个特点很有用,有些开发场景下,UI设计限定了一个文本的宽度,但是文本的长度可能比较长,如果设定一个固定的textSize,就导致一部分文本无法显示。而AppCompatTextView就是为此而生,设定三个参数就可以让文本随着文本宽度的变化,限定在一个固定范围内完整显示出来: 注意:是 app:autoSizeTextType=“uniform” 而

weixin_42814000的博客 2939

别再只调PID了!手把手教你从LC谐振到检波,搞定STM32智能车电磁循迹硬件电路

本文深入解析STM32智能车电磁循迹硬件电路设计,从LC谐振选频到数字信号处理,提供完整的信号链路设计要点与实战技巧。通过优化电磁杆布局和信号放大电路,显著提升赛道位置检测精度,误差可控制在±0.5cm以内,为智能车竞赛提供可靠硬件支持。

weixin_29220405的博客 263

LEfSe分析避坑指南:如何解决R语言中的常见错误与优化结果可视化

本文提供了R语言中进行LEfSe(线性判别分析)微生物组差异分析的全流程避坑指南。详细解析了从数据格式准备、参数调优(如显著性水平与LDA阈值)、结果可靠性验证到使用ggplot2进行高级可视化的实战技巧,帮助用户规避常见错误,获得更稳健、美观的分析结果。

weixin_29098391的博客 361

Android新增AppCompatTextView自适应字体大小和文本宽度

Android新增AppCompatTextView自适应字体大小和文本宽度 Android的supportv7包中新增了一个AppCompatTextView,它是Android标准TextView的增强: package android.support.v7.widget; public class AppCompatTextView extends TextView implement...

Zhang Phil 2万+

Arduino应用——PWM控制直流电机风扇

Arduino应用——PWM控制直流电机风扇PWM原理实验器件功能描述如何改变文本的样式插入链接与图片实现代码生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 最近在使用arduino UNO开发板完成课程小作业。其中一个要求设计一个电风扇控制系统,要求能够通过PWM调节风扇的转速。期间搜索了许多例程和方法,但受限于器件,效果不

hypecycle的博客 2万+

android.support.v7.widget.tintresource,无法使用android.support.v7.widget.AppCompatTextView实例化以下类...

最近我在Android工作室的应用程序中将我的sdk从25改为26,我在我的所有xml中都遇到了这个奇怪的错误.目前错误并没有以我能看到的任何方式影响我的应用程序,但是每次我必须编辑或更改xml中的某些内容时都很烦人.这里的错误:无法实例化以下类 – android.support.v7.widget.AppCompatTextViewjava.lang.NullPointerExceptiona...

weixin_39663933的博客 416

西安交通大学软件学院——分布式系统练习题(综合题)

摘要:本文探讨了分布式系统的核心特性与关键问题。首先阐述了分布式系统的8种透明性特性,包括访问、定位、迁移等。然后通过具体案例分析了分布式事务的回滚机制、域名解析的迭代与递归过程、不同分布式系统的异同比较。重点讨论了RPC通信中客户端/服务器崩溃的处理方法,包括消灭、再生和到期三种策略。最后介绍了Lamport时间戳算法在进程通信中的应用及问题解决方案。全文涵盖了分布式系统设计中的透明性、可靠性、一致性等核心问题。

qq_73044452的博客 204

Vue3 - 详解实现网站接入钉钉扫码登录功能,钉钉授权生成登录二维码用户用手机扫描二维码登陆,支持弹框式、浏览器单独新开页显示,钉钉扫描二维码登录详细流程及示例代码,最新vue集成钉钉扫码授权登录!

vue3,nuxt3,钉钉,扫码登录,vue3钉钉扫码登陆,钉钉授权第三方WEB网站扫码登录功能,钉钉扫码登录第三方网站,单点登录,二维码不显示,报错,扫了没反应,出错,vue3钉钉扫码登录,内嵌,获取个人信息,pc网页钉钉登录,钉钉扫码登录怎么新开一页,跳页显示二维码,内嵌登录二维码,iframe新页面弹出,弹出一个小窗口显示登录二维码,登录报错,扫码没反应,解决手机点登录报错没反应,官方文档,手机扫描钉钉二维码登录网站,页面弹出一个小窗口而不是打开一个页面,vue3中使用iframe实现另开小窗口扫码登

🏆 前端领域优质创作者 3694

androidx.appcompat.widget.AppCompatTextView cannot be cast to android.widget.RadioButton修复

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.myapplication, PID: 29584 java.lang.ClassCastException: androidx.appcompat.widget.AppCompatTextView cannot be cast to android.widget.RadioButton at com.example.myapplication.MainActivity8.onClick

qq_43032953的博客 1万+

Python爬虫经典案例第67篇:社交媒体平台爬取:Twitter数据采集实战

Twitter(现更名为X)是全球最具影响力的社交媒体平台之一,拥有超过3.3亿月度活跃用户。作为一个实时信息传播平台,Twitter上的数据涵盖了新闻、政治、娱乐、科技等各个领域,具有极高的研究价值:本文将深入探讨Twitter数据采集的技术方案,包括官方API调用、网页爬取和浏览器自动化三种方式。Twitter采用现代化的微服务架构,主要特点包括:Twitter作为全球最大的社交媒体平台,拥有完善的反爬机制:在开始爬取前,需要明确合法的数据采集方式:重要提示:未经授权爬取Twitter数据可能违反服务条

2201_76125261的博客 658

android.support.v7.widget.AppCompatTextView cannot be cast to android.widget.RadioButton

android.support.v7.widget.AppCompatTextView cannot be cast to android.widget.RadioButton (RadioButton)不能强制转换 这个原因是因为在Radiogroup中含有除了radiobutton以外的控件,如:Textiview ...

liulu_all的博客 4367

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

[Android]代码中如何设置AppCompatTextView的drawable

resources.getDimensionPixelSize(R.dimen.drawablePadding) 获取 drawablePadding 的像素值,确保与 XML 中的 android:drawablePadding="5dp" 保持一致。如果没有定义 R.dimen.drawablePadding,可以直接使用像素值代替,如 5。: 使用 ContextCompat.getDrawable 获取 drawable 资源,确保兼容性。

Gamin 732

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

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

android自定义spinner,使用AppCompatTextView+PopupWindow 实现下拉选择的功能

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33719619的博客 399

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

support-v7是如何将TextView替换为AppCompatTextView的?

日常在使用AppCompatActivity的时候,发现对于在xml中编写的布局最终都会变成Compat...等控件,那么是如何实现这种全局的控件替换的呢,这是此次分析的如要问题。 AppCompatActivity的setContentView() 首先,我们猜想,会不会是AppCompatActivity重写了setContentView()做了一层封装呢,基于这种猜想,看一下它里面的实现方法...

茅屋 2193

java.lang.ClassCastException: android.support.v7.widget.AppCompatTextView cannot be cast to com.demo

android的报错提示: java.lang.ClassCastException: android.support.v7.widget.AppCompatTextView cannot be cast to com.demo.test.view.ExpandTextView 错误在哪,我不说多 解决: 报错信息中:ExpandTextView(自定义),就是我不小心把ExpandTextView写成TextView 所以说: R.id.textView是TextView 类型,R.id.button是

彬sir哥的博客 1519

This custom view should extend androidx.appcompat.widget.AppCompatTextView instead

报错信息 第一种:This custom view should extend androidx.appcompat.widget.AppCompatTextView instead(这是新版) 第二种:This custom view should extend android.support.v7.widget.AppCompatTextView instead(这是旧版) 解决方案 import android.annotation.SuppressLint; @Suppre..

我想月薪过万的博客 4360

TextView、AppCompatTextView和MaterialTextView该用哪一个?Android UI 组件发展史与演进对照表

在 Android 开发中,UI 组件一直在不断演进,从最初的原生组件,到 Support Library(AppCompat 兼容库),再到如今的 Material Design 组件。这篇文章将梳理 Android UI 组件的发展历史,并提供详细的对照表,帮助开发者选择合适的 UI 组件。:2011 年(Android 3.0 时代)~ 2018 年(Android 9):2014 年(Android 5.0 发布)~ 现在。当然,下面是一张更完整的对照表,列出了。的演进过程,并附带控件的主要功能。

居然是阿松的博客 1530
上一篇: 【Kotlin】Kotlin的高阶函数与Lambda表达式
下一篇: 【Java】JVM运行时数据区域与内存回收机制
devnn
博客等级 码龄12年 2005粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值