Android笔记 自定义控件时drawText字符串宽度的3种计算方式

这篇具有很好参考价值的文章主要介绍了Android笔记 自定义控件时drawText字符串宽度的3种计算方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

String str = "hello";
canvas.drawText(str, x, y, mPaint);

//1. 粗略计算文字宽度:
float width = mPaint.measureText(str);


//2. 计算文字的矩形,可以得到宽高:
Rect rect = new Rect();
mPaint.getTextBounds(str, 0, str.length(), rect);
int w = rect.width();
int h = rect.height();

//3. 精确计算文字的宽度:
public static int  getTextWidth(Paint mPaint, String str)
{
    float iSum = 0;
    if(str != null && !str.equals(""))
     {
           int len = str.length();
           float  widths[] = new float[len];
           paint.getTextWidths(str, widths);
           for(int i = 0; i < len; i++)
           {
                iSum += Math.ceil(widths[i])
           }
     }
     return (int)iSum;
}

文章来源地址https://www.toymoban.com/news/detail-688528.html

到了这里,关于Android笔记 自定义控件时drawText字符串宽度的3种计算方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具

    公文一键排版系统基本完成,准备继续完善SysInfo,增加用户帐户信息,其中涉及到Win32_Account结构,其C++定义如下:  由于WMI使用的是UniCode(WCHAR),所以我们在MASM32中要将以上成员属性AccountType、Caption……按DW UniCode(WCHAR)来定义,如下: 虽然MASM32 在QEDITOR 的 Conversions里提

    2024年02月13日
    浏览(44)
  • Java 字符串数组定义_「string数组」string 数组怎么定义

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 点击跳转浏览。 String arr[] = new String[10]; //创建一个长度为10的String 类型数组。 String arr[] = {“张三”,“李四”}; 这个是最常用的 String[] arr = new String[10];

    2024年02月15日
    浏览(51)
  • C语言字符串的两种定义方式

    C语言中 初始化一个字符串有两种定义方式: 第一种为 char str[] = \\\"hello\\\"; 或者 char str[] = {\\\'h\\\',\\\'e\\\',\\\'l\\\',\\\'l\\\',\\\'o\\\',\\\'\\0\\\'}; 第二种为 char *str = \\\"hello\\\"; 两种的区别如下: char str[] 将字符串定义为字符串变量 (可读可写)而 char *str 将字符串定义为字符串常量 (只读) 程序运行结果如下:  

    2023年04月08日
    浏览(33)
  • 浅谈字符串的定义(c++)非常详细,建议收藏

    C++ 有一个新的数据类型——字符串类型。这里的 string 是 C++ 所独有的,C语言没有。 定义一个值为 Initial string 的字符串 s s s ,包括空格。 定义一个空字符串 s s s 。 定义一个 s 0 s0 s 0 字符串的copy字符串 s s s 。 定义一个字符串 s 3 s3 s 3 ,该字符串的值为从 s 0 s0 s 0 的第 8

    2024年02月08日
    浏览(54)
  • [MSSQL]自定义函数之从字符串提取数字

    之前写过从字符串中提取字母。某些场景需要从字符串中提取字母。

    2024年01月25日
    浏览(49)
  • Android StringFog 字符串自动加密

    一、StringFog 作用 一款自动对dex/aar/jar文件中的字符串进行加密Android插件工具,正如名字所言,给字符串加上一层雾霭,使人难以窥视其真面目。可以用于增加反编译难度,防止字符串代码重复。 支持java/kotlin。 支持app打包生成的apk加密。 支持aar和jar等库文件加密。 支持加

    2024年02月02日
    浏览(43)
  • 【算法】用c#实现自定义字符串编码及围栏解码方法

    编写一个函数/方法,它接受2个参数、一个字符串和轨道数,并返回ENCODED字符串。 编写第二个函数/方法,它接受2个参数、一个编码字符串和轨道数,并返回DECODED字符串。 然后使用围栏密码对其进行解码。 这种密码用于通过将每个字符沿着一组“竖状轨道”依次放在对角线

    2024年02月12日
    浏览(38)
  • android/ios 一键抽取硬编码字符串

    由于老项目 做国际化困难,抽取繁琐 最终实在蛋疼 最终开发插件来解决 android studio 插件 一键抽取硬编码字符串 xcode 一键抽取硬编码字符串 环境配置android studio ,appcode idea 环境类似 1.安装插件 插件下载点击 安装教程查看地址(可以之后忘记博客地址 可以在插件描述的地方找

    2024年02月07日
    浏览(43)
  • Java学习笔记:字符串

    目录 Java学习笔记:字符串 String 创建String对象 内存模型 String 比较 Scanner验证键入的字符串本质是new出来的 练习案例:判断账户和密码是否一致 遍历字符串 统计字符次数 字符串反转 StringBuilder StringBuilder构造方法 链式编程 拼接字符串 StringJoiner 总结 必须学习使用JDK API帮助

    2024年03月17日
    浏览(96)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包