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.AppCompatTextViewandroid: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 thecontainer. --><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的作用就无效了。

【Android】AppCompatTextView的使用详解相关推荐

  1. Android 图片着色 Tint 详解2—xml设置、selector

    上篇文章介绍了给drawable设置tint 以达到颜色变化效果,这篇介绍下通过xml设置tint.代码设置tint以及如何设置tint selector. 在xml中设置tint 可以利用 andr ...

  2. android jar 包 意见反馈功能,android重点jar包详解.docx

    android重点jar包详解 深入理解View(一):从setContentView谈起 我们都知道?MVC,在Android中,这个?V?即指View,那我们今天就来探探View的究竟.在onCr ...

  3. Android应用坐标系统全面详解

    Android应用坐标系统全面详解 原文链接:CSDN@工匠若水,http://blog.csdn.net/yanbober/article/details/50419117 1. 背景 去年有很多人 ...

  4. Android NFC开发实战详解

    Android NFC开发实战详解 Android开发实战详解NFC国内第一本AndroidNFC开发书籍带你开启AndroidNFC开发的神秘之旅大综合案例帮助读者快速进入实战角色:WiFi快速连接 ...

  5. Android Gradle 自定义Task详解二:进阶

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78523958 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...

  6. Android Gradle 自定义Task 详解

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/76408024 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...

  7. android ------- 开发者的 RxJava 详解

    在正文开始之前的最后,放上 GitHub 链接和引入依赖的 gradle 代码: Github:  https://github.com/ReactiveX/RxJava  https://githu ...

  8. Android自定义属性,format详解

    1. reference:参考某一资源ID. (1)属性定义: <declare-styleable name="名称"><attr name="bac ...

  9. android layout_width 属性,android:layout_weight属性详解

    在android开发中LinearLayout很常用,LinearLayout的内控件的android:layout_weight在某些场景显得非常重要,比如我们需要按比例显示.android并没用提 ...

  10. 宏锦软件 Android 的 ListView 使用详解

     宏锦软件爱好者在开发Android软件时,对ListView的使用有点陌生,于是翻了许多资料,这里给大家一份比较好的教程,希望有用. 在android开发中ListView是比较常用的组件,它以 ...

最新文章

  1. R语言ggplot2可视化:为图像中的均值竖线、中位数竖线、 geom_vline添加图例(legend)
  2. 脚本语言和工程语言_语言工程中有趣的事情
  3. NOIP2013普及组复赛试题_计数问题
  4. DHCP服务器在企业里的各种应用方案
  5. linux定时执行任务命令,crontab(linux下定时执行任务命令)
  6. c语言 double float 类型
  7. CPU负载均衡之loadavg计算
  8. Turbo C 2.0
  9. 从达尔文到DevOps:John Willis和Gene Kim谈后凤凰项目时代
  10. 卫星星历和历书的区别
  11. 电脑可以登录QQ但是却无法打开网页
  12. c语言高级成分,高级语言的基本成分数据成分,运算成分,控制成分,传输成分,怎么看它们的类型区别的?比如其中对处理对象的类型说明属于高级语...
  13. PEG 动态选股策略
  14. 【区块链讲师会前访谈】结合应用场景 区块链共识算法如何选择?
  15. 交叉编译ffmpeg:aac x264 x265
  16. 儿童节html5小游戏,适合儿童节活动上玩的亲子互动小游戏
  17. C++课程基础语法小结
  18. 智能无纸化办公,方便快捷,DIY也很简单
  19. android ormlite 查询,带引号的ORMLite查询,Android
  20. 基于PnP的目标位姿求解

热门文章

  1. 【数据分析案例】某瓣读书数据分析
  2. 无人驾驶、人脸识别……人工智能时代正在到来,我们该如何应对
  3. 神经网络2-预测药物靶点
  4. GTHE3开发记录1
  5. XCZU15 FPGA+ADRV9026 驱动调试记录
  6. 一文读懂Redis概念及常用术语
  7. 实验9 windows程序设计
  8. CocoStudio的使用
  9. 数字IC设计自学入门难吗?如何快速入门呢?
  10. c语言编程从入门到精通+pdf下载,编程大讲坛 C语言核心开发技术从入门到精通 陈强 pdf扫描版...