Android drawText获取text宽度的三种方式

Android根据TextView的文本大小计算其宽度和高度 然后,我们需要根据获取到的文本大小和文本内容来计算TextView的宽度和高度。TextView的宽度可以通过调用TextView的measureText(CharSequence text)方法来计算,返回值是文本内容的宽度。高度可以通过获取TextView的文本行数和每行的高度来计算,其中每行的高度可以通过调用TextView的getLineHeight()方法获取。最后,我们可以使用setWidth()和setHeight()方法来设置TextView的宽度和高度,以使其适应计算得到的宽度和高度值。 阅读详情
    String str = "Hello";  
    canvas.drawText( str , x , y , paint);  
      
    //1. 粗略计算文字宽度  
    Log.d(TAG, "measureText=" + paint.measureText(str));  
      
    //2. 计算文字所在矩形,可以得到宽高  
    Rect rect = new Rect();  
    paint.getTextBounds(str, 0, str.length(), rect);  
    int w = rect.width();  
    int h = rect.height();  
    Log.d(TAG, "w=" +w+"  h="+h);  
      
    //3. 精确计算文字宽度  
    int textWidth = getTextWidth(paint, str);  
    Log.d(TAG, "textWidth=" + textWidth);  
      
        public static int getTextWidth(Paint paint, String str) {  
            int iRet = 0;  
            if (str != null && str.length() > 0) {  
                int len = str.length();  
                float[] widths = new float[len];  
                paint.getTextWidths(str, widths);  
                for (int j = 0; j < len; j++) {  
                    iRet += (int) Math.ceil(widths[j]);  
                }  
            }  
            return iRet;  
        }  

智能变电站协议系列-1、GOOSE、SV、MMS协议简介及GOOSE示例运行问题(IEC61850) 目前有一个新的研究,关于电网使用的GOOSE、SV、MMS协议,并使用相关库来做一下测试。由于goose、sv、mms等都属于IEC61850,因此,需要对IEC61850相关内容有一些了解,都是国际标准,属于电气自动化的一部分,对于自动化或者电气相关领域有接触的专业应该或多或少有一些了解。IEC61850目标是用于变电站自动化、分布式能源、水力和天然气发电厂、风力发电厂、电动汽车作为分布式能源等领域,目前似乎在变电站自动化方面的推广和使用更加广泛。 阅读详情

相关推荐

UFS逻辑单元管理

介绍UFS 逻辑单元管理和配置

m0_51720747的博客 1945

【Pillow库】图片操作

2、绘图部分 3、矩形绘制

qq_40621476的博客 1803

从RADIUS服务器到AP:实战搭建一个小型WPA2-Enterprise测试环境(FreeRADIUS + 家用路由器)

本文详细介绍了如何从零搭建WPA2-Enterprise测试环境,使用FreeRADIUS服务器和家用路由器实现企业级WiFi认证。通过实战指南,包括证书生成、EAP-PEAP配置、OpenWrt路由器设置及故障排查,帮助网络工程师和爱好者掌握802.1X协议栈的实际应用。

weixin_28715953的博客 324

Android获取文本的宽度和高度

在文本数据绘制时获取文本的宽度和高度

a307326984的博客 5605

森林冰火人html源码,森林冰火人单人版(源码)

【实例简介】java小游戏——森林冰火人,单人游戏, 实现人物行走,跳跃,吃水晶,具有计时功能,积分功能,倒计时结束游戏失败。【实例截图】【核心代码】森林冰火人单人版├── bin│ ├── game│ │ ├── Help.class│ │ ├── Logon.class│ │ ├── Main.class│ │ ├── Mykey.class│ │ ...

weixin_42507981的博客 6196

SPI 协议帧格式深度解析:从 8 位数据到 16 位扩展的 3 种模式

本文深入解析SPI协议的帧格式,涵盖从8位标准到16位扩展的三种模式。通过详细讲解SPI时钟模式、数据宽度配置及实际应用案例,帮助开发者掌握SPI外设的深度定制能力,提升嵌入式系统开发效率。特别适用于连接传感器、存储器和显示器等高速通讯场景。

weixin_34110749的博客 345

ImageDraw.textsize()和ImageDraw.text()的使用举例

参考链接: ImageDraw.text(xy, text, fill=None, font=None, anchor=None, spacing=4, align=‘left’, direction=None, features=None, language=None, stroke_width=0, stroke_fill=None, embedded_color=False) 参考链接: ImageDraw.textsize(text, font=None, spacing=4, direction=

敲代码的小风 1万+

百度API实现人流量数量检测(动态)

百度的这个API还挺好用的,对与不追求高精度的人来说非常适用,结合他官方给的文档,极易上手。 需要做的就是通过API Key和Secret Key获取的access_token。 然后稍微修改下代码就行,但是他给的代码并没有直接从摄像头获取视频,而是读取一个文件夹,那么就需要自己先对摄像头的输出视频进行处理。 识别结果如下,"person_num"是当前画面的人数,in是累计进入的人数,out是累计走出去的人数。 他这个有个缺点就是返回值里边并没有实时返回in和out的值,而是都是0,但是这个图片上有,图片

qq_42479987的博客 3379

Android drawText获取text宽度的三种方式 .

String str = "Hello"; canvas.drawText(str,x,y,paint); //1.粗略计算文字宽度 paint.measureText(str); //2.计算文字所在矩形,可以得到宽高 Rect rect = new Rect(); paint.getTextBounds(str,0,str.length(),rect); int w =

zhanqq2012的专栏 540

Vue3 - 超详细“纯前端“将文件上传到阿里云OSS对象存储,最新阿里云前端直传音频、视频、图片、文件、office文档等任意文件,vue3单个或批量从本地选择文件,秒传到阿里云oss无需后端接口!

vue3,阿里云oss存储,前端直传oss,上传图片/office文档/音视频/zip压缩包到阿里云oss,项目中上传文件到阿里云oss详细教程,如何将本地文件上传到阿里云OSS存储,纯前端实现阿里云OSS上传,纯前端直传至阿里OSS对象存储教程,如何解决上传文件到阿里云OSS本地环境调试出现跨域问题,直传阿里云oss跨域报错解决,前端直接上传文件到oss服务端,不经过后端直传,浏览器直接上传文件,阿里云oss上传sdk官方文档,阿里云错误,解决这个问题,上传很慢,一直签名失败,权限,不经过后端,纯前端直传

🏆 前端领域优质创作者 1万+

TC3XX - MCAL知识点(三十八):AURIX™ TC3xx 的EDSADC实现旋变解码功能(理论知识+手册阅读)

本文系统梳理了英飞凌AURIX系列芯片EDSADC模块的技术手册内容。首先概述了该模块的架构特点,包括模拟/数字输入通道和总线地址信息。重点解析了手册中的关键知识点:1)模拟量输入的差分/单端模式;2)数字量连接的触发、数据源和时钟源选择;3)功能配置中的寄存器操作注意事项;4)输入通道的三种数据来源模式;5)滤波器链的组成和工作原理;6)旋变应用中的载波信号生成和延迟补偿机制。最后对SRM、SAUL、SBLL等专业术语进行了详细解释。全文为理解EDSADC模块的硬件特性和配置方法提供了系统的技术参考。

梦想技术家 590

Android 自定义View中drawText获取text宽度的三种方式

String str = "Hello"; canvas.drawText( str , x , y , paint); //1. 粗略计算文字宽度 Log.d(TAG, "measureText=" + paint.measureText(str)); //2. 计算文字所在矩形,可以得到宽高 Rect rect = new Rect(); paint.get

maxliyu的博客 1270

vs2017配置liblas库+测试代码

之前已经配置好pcl(vs2017配置pcl),可以单独配置liblas,也可以在原有pcl属性表的基础上继续配置

孙悟空 4022

自定义控件之绘图篇( 五):drawText()详解

前言:但行好事,莫问前程。只需努力每一天。 相关文章: 《Android自定义控件三部曲文章索引》: http://blog.youkuaiyun.com/harvic880925/article/details/50995268 long long ago,有讲过有关Canvas绘图的系列知识,当时着重在基本绘图要领和canvas的保存与回退上,对drawText没有细讲,但DrawText这...

启舰 7万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

绘制系列(五)-DrawText()详解

绘制系列(二)-DrawText()详解 文字基础知识 1、setTextAlign() 设置文字对齐方式(起始点相对于文字) canvas.drawText(“文字”,起始点,paint) 比如: paint.setTextAlign(Paint.Align.RIGHT)//表示起始点在文字的右侧开始绘制; ###2、设置字体样式 ### 设置粗体 setBoldText(boolean fa...

Leslie_LN的博客 6397

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android drawText获取text宽度

private int getTextWidth(Paint paint, String str) { int iRet = 0; if (str != null && str.length() > 0) { int len = str.length(); float[] widths...

丿灬安之若死 352

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: Android ApiDemos示例解析(68):Graphics->MeasureText
下一篇: linux上使用netstat查看当前服务和监听端口
cbbbc
博客等级 码龄15年 609粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值