android 测量字体宽高,Android中测量Text的宽度和高度
@(Android技术文章)
个人博客地址: 斯科特安的时间
Android中,在自定义View中通过Canvas绘制文字时,经常需要测量文字的宽度和高度。
Paint.measureText (测量文本的宽度)
Paint paint = new Paint();
paint.setTextSize(size);
float strWidth = paint.measureText(str);
Paint.getTextBounds (获得文字所在矩形区域,可以得到宽高)
Paint paint = new Paint();
Rect rect = new Rect();
paint.getTextBounds(str, 0, str.length(), rect);
int w = rect.width();
int h = rect.height();
Paint.getTextWidths(获得每个字符的宽度)
float width = 0;
int len = str.length();
Paint paint = new Paint();
float[] widths = new float[len];
paint.getTextWidths(str, widths);
for (int i = 0; i < len; i++) {
width += widths[i];
}
通过Paint.FontMetrics or Paint.FontMetricsInt来获取高度
Paint paint = new Paint();
paint.setTextSize(size);//设置字体大小
paint.setTypeface(Typeface.xx);//设置字体
FontMetrics fontMetrics = getFontMetrics();
float height1 = fontMetrics.descent - fontMetrics.ascent;
float height2 = fontMetrics.bottom - fontMetrics.top;
Layout.getDesiredWidth (获得宽度)
TextPaint textPaint = new TextPaint();
paint.setTextSize(size);//设置字体大小
paint.setTypeface(Typeface.xx);//设置字体
float width = Layout.getDesiredWidth(str,textPaint);
此外,还可以通过Paint.getFontSpacing和Paint.getFontMetrics(null)来获得高度,其实前者也是调用后者来实现的。这里的值和通过fontMetrics.descent - fontMetrics.ascent获得的大小是一致的。
android 测量字体宽高,Android中测量Text的宽度和高度相关推荐
- android+设置字体行高,android textview设置字体的行距和字间距
android textview设置字体的行距和字间距 字间距 textView有一个属性android:textScaleX是调节字间距的,它的值是一个float型.查看源代码,默认textView ...
- android 自定义控件的宽高_巧用Handler获取View控件信息
众所周知,在Android实际开发中,对于某些复杂多变的情况,控件的位置摆放.大小控制并非是xml类型的layout文件完全可以搞定的.此时,我们通常会使用Java代码来通过动态计算,将指定的控件摆放 ...
- Android 动态设置宽高
Android 动态设置宽高 val params: FrameLayout.LayoutParams = view?.layoutParams as FrameLayout.LayoutParams ...
- android 文字尺寸(宽高)的测量
FontMetrics 可以测量高度 关于FontMetrics的几个重要属性的解析 1.ascent 2.descent 3.top 4.bottom 5.leading 6.baseline 理解 ...
- Android 测量文字宽高
前言 最近自定义控件,需要绘制文本,用到了获取文本宽高的代码,在此做下记录. Paint.measureText() 获取文本宽度 Paint paint = new Paint();paint.se ...
- android获取导航栏宽高,Android获取屏幕的宽高度、状态栏、标题栏、导航栏、编辑区域高度...
目录 0.相关文章: 1.获取屏幕款高度 代码: /** * 获取屏幕宽度 * * @param context 上下文对象 * @return int */ public static int ge ...
- Android获取屏幕宽高,状态栏宽高,actionbar宽高,layout宽高,导航栏高度的方法汇总
看这个博客你可以知道 获取屏幕宽高,状态栏宽高,actionbar宽高,layout宽高,导航栏(虚拟按键栏)高度的方法 目录顺序为 代码测试的机型 状态栏高度 actionbar高度 屏幕高度 导航 ...
- Android获取View宽高的常见方式
背景 有时我们会有基于这样的需求,当Activity创建时,调用View.getWidth.View.getHeight().View.getMeasuredWidth() .View.getgetM ...
- Android 获取屏幕宽高的正确姿势
前言 在开发时,我们经常需要根据屏幕的宽高来进行对view的适配,无论是自定义view还是andorid自带的一些控件,比如说需要占当前屏幕高度的30%,就需要获取到屏幕的宽高,但在获取宽高时我遇到了 ...
最新文章
- mysql的主从复制功能_Mysql的主从复制功能
- 元宇宙该如何发展才不会变为泡沫
- Python命令行参数学习
- 开发过程真相...太真实了!一毛一样有没有!
- RESTful API的理解
- mysql集群安装指南
- 上传到SAP云平台CloudFoundry上的nodejs应用存储的绝对路径
- Codeforces Round #FF (Div. 1) A. DZY Loves Sequences
- Java虚拟机是如何执行线程同步的
- eclipse导入外部项目引发的错误以及解决方案
- Bella Protocol已按计划调整流动性挖矿奖励方案
- 备份k8s_树莓派k8s集群安装kafka集群及监控
- STM8S103之时钟设置
- Hello CSDN
- PCB设计中常见的错误与解决方法
- Windows10系统C盘文件实际大小占用空间和可用空间不一致(相差差8到20G)
- 2017计算机研究生专业排名,2017年USNews美国大学计算机硕士研究生专业排名TOP110...
- GB\T和GB国标文件查询、下载方法(建议收藏)
- 计算机网络多元化媒体传达,网页版式设计的特征及其视觉元素
- Revit综合插件使用教程,综合插件主要的几个功能(上)
热门文章
- 314.二叉树的垂直遍历
- socket编程(十)
- c语言中英互译程序,c语言怎么翻译? 程序怎么运行?
- centos7 cuda测试_CentOS 7 安装cuda环境
- python元祖组成字典_Python基础之元组和字典
- c语言正则表达式库,c语言正则表达式库--PCRE
- How to remove ROM in MAME
- Moddable SDK为物联网开发提供JavaScript引擎:不到32KB
- 除了人工智能,霍金还担心“游牧外星人”会摧毁人类
- java EE设计模式--spring企业级开发最佳实践文摘