android - 将文本 "ellipsized"绘制到 Canvas

标签 android

我需要在(自定义 View 的) Canvas 上绘制文本,并且需要先将其修剪到最大宽度,必要时在末尾添加省略号。我看到您可以为 TextView 执行此操作,但我想在自定义 View 的 onDraw() 中执行此操作,而不必添加 subview 。

这可能吗?我知道我可以测量字符串,切掉一个字符,再次测量,等等,直到它的大小合适……我相信还有更有效的方法……但我想避免重新发明如果可以的话,那个轮子。

最佳答案

看看TextUtils.ellipsize() .我认为这正是你想要的。基本上,您只需告诉它可用空间的大小,然后使用其他状态信息,它就会为您创建正确的文本。 :)

关于android - 将文本 "ellipsized"绘制到 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4012232/

相关文章:

Android 在设备上未安装客户端应用程序的情况下向设备发送通知消息

android 无法圆角 imageview?

可以使用 ObjectAnimator 进行动画处理的 Android 属性

android - apache.http 和 apache.commons.httpclient 库有什么区别?

android - 如何在 TabHost 中更改颜色

java - 无法解析 graphql 查询类上的符号 "Data"

android - 如何从 RecyclerView 项目中获取值(value)

java - 表 Laws_Table 没有名为 Category_name 的列(代码 1 SQLITE_ERROR)

java - 在 Android 中从 PHP 获取数据

android - 忽略 AutoCompleteTextView 下拉样式