Android 字体大小自动处理 AppCompactTextView 和 自定义 TextView

news/2025/2/26 18:53:33

背景

来自于 需求的视觉设计要求

  • 限制字段长度为320px
  • 超长时按宽度缩小字号
  • TextView底色高度固定
  • 字体缩小步进1sp

难点

课程卡片为自定义View,封装信息层组件,通过锚定基准比例实时计算获取以下对应信息:

  • Radius
  • ImageWidth
  • ImageHeight
  • Magin
  • Padding
  • TextSize

动态数据加载,等待后端返回参数进行以下设置:

  • Background
  • Color
  • Text

主流实现方案

采用AppCompactTextView的内部属性,必须设置:

  • 动态变化字体大小适应长度标志位:uniform
  • 字体缩小步长:2sp
  • 字体缩小后的最小字体大小:5sp (必须配置 否则放缩不生效)

android:autoSizeMinTextSize="5sp"
android:autoSizeStepGranularity="2sp"
android:autoSizeTextType="uniform"

http://www.niftyadmin.cn/n/5869078.html

相关文章

网络安全漏洞管理要求 网络安全产品漏洞

一、漏洞类型 缓冲区溢出、跨站脚本、DOS攻击、扫描、SQL 注入、木马后门、病毒蠕虫、web攻击、僵尸网络、跨站请求伪造、文件包含、文件读取、目录遍历攻击、敏感信息泄露、暴力破解、代码执行漏洞、命令执行、弱口令、上传漏洞利用、webshell利用、配置不当/错误、逻辑/涉及错…

【C++设计模式】观察者模式(1/2):从基础到优化实现

1. 引言 在 C++ 软件与设计系列课程中,观察者模式是一个重要的设计模式。本系列课程旨在深入探讨该模式的实现与优化。在之前的课程里,我们已对观察者模式有了初步认识,本次将在前两次课程的基础上,进一步深入研究,着重解决观察者生命周期问题,提升代码的安全性、灵活性…

设计模式-(装饰器,适配器,观察者,外观)

装饰器模式 概念: 它允许在不改变对象自身的情况下,动态地给对象添加额外的功能。通过使用装饰器模式,可以在运行时对对象进行扩展,而不需要创建大量的子类 应用: 当你希望在不修改原有类的情况下,给对…

高中数学基础-统计和概率

文章目录 一、统计基础二、概率三、计数原理四、随机变量 高中数学基础-统计和概率 一、统计基础 总体、个体:所有元素称为总体,其中一个元素称为个体普查、抽查:所有元素都检查一遍称为普查,对部分样本进行抽取检查称为抽查&…

BUG: 解决新版本SpringBoot3.4.3在创建项目时勾选lombok但无法使用的问题

前言 当使用Spring Boot 3.4.3创建新项目时,即使正确勾选Lombok依赖,编译时仍出现找不到符号的错误,但代码中Lombok注解的使用完全正确。 原因 Spring Boot 3.4.3在自动生成的pom.xml中新增了maven-compiler-plugin的配置,该插件…

精美登录注册UI,登录页面设计模板

精美登录注册UI,登录页面设计模板 引言 在网页设计中,按钮是用户交互的重要元素之一。一个炫酷的按钮特效不仅能提升用户体验,还能为网页增添独特的视觉吸引力。今天,我们将通过CSS和JavaScript来实现一个“精美登录注册UI,登录页面设计模板”。该素材呈现了数据符号排版…

父组件用的是原生监听,子组件用的是onClick,子组件添加了stopPropagation还是没有阻止传播

父组件用事件监听,子组件用onClick,即使子组件加了stopPropagation还是没有阻止冒泡。父组件可能使用原生的addEventListener来绑定事件,而子组件用的是React的onClick事件。这时候,虽然子组件调用了e.stopPropagation()&#xff…

ubuntu-24.04.1-desktop 中的 QT6.7 QtCreator 调试程序

ubuntu-24.04.1-desktop 中的 QT6.7 QtCreator 中调试程序 1 启动调试时提示:The kit does not have a debugger set.2 CDB配置问题2.1 选择 工具 -> 外部 -> 配置2.2 配置 CDB 路径 1 启动调试时提示…