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);
}相关文章:
TextView的setTextSize与xml中android:textSize属性值的对应关系
android中,对TextView设置文本字体大小,是通过在layout xml中设置android:textSize的属性值实现的,比如设置“24sp”,这里的sp是一种单位,其他可选的单位还有px,dip(dp),pt,in&#…...
广东盈致mes系统在注塑行业的应用
广东盈致MES系统在注塑行业的应用主要体现在以下几个方面: 生产计划与调度:盈致MES系统能够根据订单需求和生产计划,自动生成生产任务,并跟踪生产进度,确保按时完成生产任务。通过与注塑机的集成,系统可以自…...
如何获得《幻兽帕鲁》隐藏帕鲁唤夜兽?13000个配种配方查询 幻兽帕鲁Steam好评率还在涨 Mac苹果电脑玩幻兽帕鲁 Crossover玩Windows游戏
《幻兽帕鲁》是一款Steam平台热门游戏,开放式大陆和养成式冒险结合,成为2024首款热门游戏,不过由于官方仅发布了Windows版的游戏客户端,Mac用户无法直接玩,好在有Crossover这样的神器,让苹果电脑也能玩上《…...
elementui中的tree自定义图标
需求:实现如下样式的树形列表 自定义树的图标以及点击时,可以根据子级的关闭,切换图标 <el-tree :data"treeList" :props"defaultProps"><template #default"{ node, data }"><span class&quo…...
mybatis实现模糊搜索
这里使用if标签进行是实现,使用like标签也可以实现,只是容易出错了,下面 直接上代码 只需要把字段名和搜索条件替换就行。 <select id"selectByLike" parameterType"map" resultType"YourResultType">…...
ssh 修改端口号 一个ip ssh多个主机
ssh默认端口为22。 通过路由映射,保留一个22端口,其它主机修改端口,可以用一个ip ssh多个主机。 修改端口需修改/etc/ssh/sshd_config sudo vim /etc/ssh/sshd_config/Port #Port 22删除前面的#,然后修改端口号,如23 …...
Proto文件如何生成JavaProto对象?
首先安装好Protocol Buffer的编译器 Protocol Buffer: version:2.6.1 link: 链接直达 根据电脑环境进行下载,Widnwos 32/64位就选择win32是没问题的,楼主亲测 1.proto文件编写 Person.proto public class Person {String name;int id;String email…...
LightDB 24.1 UNION支持null类型匹配
背景介绍 在LightDB 24.1之前的版本,UNION null类型匹配会报错。 lightdbpostgres# select null l_zqlbmx2 union all select null l_zqlbmx2 union all select sysdate l_zqlbmx; ERROR: UNION types text and timestamp without time zone…...
使用vs2022将.net8的应用程序发布为一个单独文件
在使用.NetCore3.1时,可以通过设置以下工程配置文本来将项目发布为一个单独的应用程序文件: <Project Sdk"Microsoft.NET.Sdk.WindowsDesktop"><PropertyGroup><TargetFramework>netcoreapp3.1</TargetFramework><…...
面试经典150题(93-95)
leetcode 150道题 计划花两个月时候刷完,今天(第五十三天)完成了3道(93-95)150: 93.(53. 最大子数组和)题目描述: 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组&am…...
flask 实现token生成以及携带token请求接口
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Flask-JWT-Extended是什么?二、使用步骤1.引入库2.请求验证 总结 前言 提示:这里可以添加本文要记录的大概内容: 提示&…...
docker-compose部署单机ES+Kibana
记录部署的操作步骤 准备工作编写docker-compose.yml启动服务验证部署结果 本次elasticsearch和kibana版本为8.2.2 使用环境:centos7.9 本次记录还包括:安装elasticsearch中文分词插件和拼音分词插件 准备工作 1、创建目录和填写配置 mkdir /home/es/s…...
gitee仓库项目迁移到gitlab仓库
背景 之前一直使用gitee代码仓库提交代码,现在需要将gitee仓库中的代码迁移到gitlab中,并保留原有的提交记录。 前提 配置好了本地git,并本地与gitlab仓库已连接。 我这里使用 ssh方式拉去代码,因此需要配置ssh密钥 步骤 也可以直…...
安装elasticsearch、kibana、IK分词器
1.部署单点es 1.1.创建网络 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: docker network create es-net 1.2.加载镜像 这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大࿰…...
海外云手机运营Instagram攻略
Instagram是世界著名的社交媒体平台,有着10亿实时用户,是跨境电子商务的优质流量来源。平台以女性用户为主,购物倾向高,转化率好。它被公认为外贸行业的优质社交媒体流量池。那么,如何使用海外云手机吸引Instagram上的…...
【lesson25】学习MySQL事务前的基础知识
文章目录 CURD不加控制,会有什么问题?CURD满足什么属性,能解决上述问题?什么是事务?为什么会出现事务事务的版本支持 CURD不加控制,会有什么问题? CURD满足什么属性,能解决上述问题&…...
SkyWalking+es部署与使用
第一步下载skywalking :http://skywalking.apache.org/downloads/ 第二步下载es:https://www.elastic.co/cn/downloads/elasticsearch 注:skywalking 和es要版本对应,可从下面连接查看版本对应关系,8.5.0为skywalking 版本号 Index of /di…...
js获取html中的img标签,图片标签,提取src属性并替换操作
场景: 获取HTML中的所有图片标签,并把图片的src属性替换成webp图片, 若浏览器支持webp,则展示,不支持走onerror函数展示data-original原图。 function getDetailWebp(htmlStr, width 600){if(!htmlStr) return ;var reg /<im…...
【力扣经典面试题】27. 移除元素
题目描述: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑…...
MicrosoftEdge浏览器打开网页出现“此网站被人举报不安全”问题时解决办法
1:有时候不知怎么回事用电脑自带的微软浏览器进行搜索会出现以下的问题 这可能是由于我们的浏览器安全审查过于严格引起的 Windows10正式版系统下,使用Edge浏览器浏览网页时候,发现整个页面突然变成了红色,显示“已有人举报此网站…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
