当前位置: 首页 > news >正文

TextView的setTextSize与xml中android:textSize属性值的对应关系

android中,对TextView设置文本字体大小,是通过在layout xml中设置android:textSize的属性值实现的,比如设置“24sp”,这里的sp是一种单位,其他可选的单位还有px,dip(dp),pt,in,mm,建议使用sp。如果要在代码中设置文本字体大小,会用到setTextSize,传入一个float的值,那么这个float值的单位是什么呢?我原本以为是px,结果不是,查看代码发现:

public void setTextSize(float size) {setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
}

原来默认是sp,如果要设置以其他单位的size,就要用到带两个参数的setTextSize,

public void setTextSize(int unit, float size) {if (!isAutoSizeEnabled()) {setTextSizeInternal(unit, size, true /* shouldRequestLayout */);}
}

第一参数可选的值在TypedValue.java中定义:

/** {@link #TYPE_DIMENSION} complex unit: Value is raw pixels. */
public static final int COMPLEX_UNIT_PX = 0;
/** {@link #TYPE_DIMENSION} complex unit: Value is Device Independent*  Pixels. */
public static final int COMPLEX_UNIT_DIP = 1;
/** {@link #TYPE_DIMENSION} complex unit: Value is a scaled pixel. */
public static final int COMPLEX_UNIT_SP = 2;
/** {@link #TYPE_DIMENSION} complex unit: Value is in points. */
public static final int COMPLEX_UNIT_PT = 3;
/** {@link #TYPE_DIMENSION} complex unit: Value is in inches. */
public static final int COMPLEX_UNIT_IN = 4;
/** {@link #TYPE_DIMENSION} complex unit: Value is in millimeters. */
public static final int COMPLEX_UNIT_MM = 5;

顺便提一下dp单位和px单位之间的转换,但这里用不到。

int dp2px(Context context, float dpValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (dpValue * scale + 0.5f);
}
http://www.lryc.cn/news/290543.html

相关文章:

  • 广东盈致mes系统在注塑行业的应用
  • 如何获得《幻兽帕鲁》隐藏帕鲁唤夜兽?13000个配种配方查询 幻兽帕鲁Steam好评率还在涨 Mac苹果电脑玩幻兽帕鲁 Crossover玩Windows游戏
  • elementui中的tree自定义图标
  • mybatis实现模糊搜索
  • ssh 修改端口号 一个ip ssh多个主机
  • Proto文件如何生成JavaProto对象?
  • LightDB 24.1 UNION支持null类型匹配
  • 使用vs2022将.net8的应用程序发布为一个单独文件
  • 面试经典150题(93-95)
  • flask 实现token生成以及携带token请求接口
  • docker-compose部署单机ES+Kibana
  • gitee仓库项目迁移到gitlab仓库
  • 安装elasticsearch、kibana、IK分词器
  • 海外云手机运营Instagram攻略
  • 【lesson25】学习MySQL事务前的基础知识
  • SkyWalking+es部署与使用
  • js获取html中的img标签,图片标签,提取src属性并替换操作
  • 【力扣经典面试题】27. 移除元素
  • MicrosoftEdge浏览器打开网页出现“此网站被人举报不安全”问题时解决办法
  • 【PyCharm教程】PyCharm 安装、卸载和升级包
  • 蓝桥杯-常用STL(一)
  • SQL查询数据库环境(dm8达梦数据库)
  • DolphinScheduler + Amazon EMR Serverless 的集成实践
  • 【服务器APP】利用HBuilder X把网页打包成APP
  • vue3 组合式API获取子组件的属性和方法
  • [数据结构+算法] 给一棵树和一个sum,判断是否存在从root到叶子结点的path之和等于sum?
  • 非阿里云注册域名如何在云解析DNS设置解析?
  • 微服务-微服务Alibaba-Nacos注册中心实现
  • 多符号表达式的共同子表达式提取教程
  • Java 反射获取属性名、属性类型、属性值、判断属性类型