根据文本区域的宽度计算文本大小

2023-11-27

我有一个文本应该设置为具有指定宽度的 TextView 。它需要计算文本大小以适合 TextView。

换句话说:有没有办法让文本适合 TextView 区域,就像 ImageView 比例类型功能一样?


这应该是一个简单的解决方案:

public void correctWidth(TextView textView, int desiredWidth)
{
    Paint paint = new Paint();
    Rect bounds = new Rect();

    paint.setTypeface(textView.getTypeface());
    float textSize = textView.getTextSize();
    paint.setTextSize(textSize);
    String text = textView.getText().toString();
    paint.getTextBounds(text, 0, text.length(), bounds);

    while (bounds.width() > desiredWidth)
    {
        textSize--;
        paint.setTextSize(textSize);
        paint.getTextBounds(text, 0, text.length(), bounds);
    }

    textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据文本区域的宽度计算文本大小 的相关文章

随机推荐

  • 是否可以使用 JavaScript 读取 Firefox、Safari 和 Chrome 中的剪贴板?

    我正在尝试使用 JavaScript 读取剪贴板的内容 通过 Internet Explorer 可以使用该功能 window clipboardData getData Text 在 Firefox Safari 和 Chrome 中是否
  • 类定义之外的部分模板特化

    我可以在类声明中使用部分模板专业化 template
  • 如何使用javascript检查文件是否被选择?

    在 php 中 这是检查文件是否被选择的方法 FILES item size gt 0 那么在 JavaScript 中呢 我需要知道 因为我有一个只有在选择文件时才起作用的函数 http www w3 org TR DOM Level 2
  • 从逗号分隔的字符串中删除重复项

    是否有更好 更快 的解决方案来从逗号分隔的字符串中删除重复项 public function d dep if strpos dep false nd explode dep oa array unique nd nx count oa g
  • 使用 JDBC 连接到 SQL Server LocalDB

    是否可以使用 JDBC 连接到 SQL Server LocalDB 看起来 截至 2011 年 12 月 这是不可能的 您知道解决方法或状态更改吗 对的 这是可能的 使用 jTDS 的 LocalDB 实例的连接字符串如下所示 jdbc
  • Braintree - paymentMethodNonce 未收到调用

    我已经为 Braintree 设置了 dropin UI 我可以很好地看到用户界面 在此之前 我创建了客户 我可以在 Braintree sandbox 上看到该客户 现在我想向客户添加付款方式 我正在尝试以下代码 但 paymentMet
  • 用于验证文件夹名称和文件名的正则表达式

    我想验证文件名 文件或文件夹的名称不应包含 您能否建议我在 preg match 中使用的正则表达式 Thanks 使用该方法会更有效strpbrk 功能 if strpbrk filename lt gt FALSE filename i
  • 拆分列表并从子列表中求和?

    我正在为我的 Haskell 课程寻找解决方案 我有一个数字列表 我需要为列表的每个部分返回 SUM 部分除以 0 我需要使用 FOLDL 函数 Example 初始列表 1 2 3 0 3 4 0 5 2 1 子列表 1 2 3 3 4
  • 为什么 CROSS JOIN 条件在“ON”子句中不起作用,而仅在 WHERE 子句中起作用?

    我想知道为什么条件交叉联接必须具有 WHERE 子句中指定的条件 以及为什么它在 ON 子句中不起作用 请参阅编译示例的链接 http rextester com IKY8693 业务上下文 我需要生成开始日期和结束日期之间的日期列表 以便
  • 如何为不接受取消令牌的异步函数设置超时?

    我的网络请求是由这段代码处理的 Response await Client SendAsync Message HttpCompletionOption ResponseHeadersRead CToken 在读取响应标头之后 内容读取完成
  • 类型提示 - 指定对象数组

    如何将参数类型指定为数组 假设我有一个名为 Foo 的类 class Foo 然后我有一个接受该类类型作为参数的函数 function getFoo Foo f 当我传入一个 Foo 数组时 我收到一个错误 说 可捕获的致命错误 参数 1
  • Linux新手问题:GCC编译器输出

    我对 Linux 完全是个新手 我在笔记本电脑上安装了 Mint 最近一直在玩它 我写了一个简单的C程序并保存了文件 然后在命令行中我输入 gcc c myfile 然后弹出一个名为 a out 的文件 我天真地 在使用 Windows 多
  • 如何从 XML 反序列化抽象类的具体实现

    我有一个带有几个具体实现的抽象类 这需要序列化为 XML 才能发送到另一个系统 这工作正常 但是 我还需要能够反序列化相同的 XML 结构 无论我如何尝试 我似乎都无法做到这一点 我的班级结构如下 抽象类 XmlIncludeAttribu
  • 为什么 MAX() 比 ORDER BY ... LIMIT 1 慢 100 倍?

    我有一张桌子foo与 以及其他 20 个 列bar baz and quux索引打开baz and quux 该表有约 500k 行 为什么以下查询的速度差异如此之大 查询A需要0 3秒 而查询B需要28秒 Query A select b
  • 在 R 中读取空格分隔的数字

    我在 R 中有这个字符串 numbers lt 4 4956 1 00e 09 50 9 1 244 47 1 1 04 5 5 0 499 13 9 0 我应该将数字读入向量中 现在我可以找到其他语言的相同线程 但这里找不到 R 的线程
  • 如何将保存图像更改为文件默认名称?

    我有一个由 Caman js 创建的画布 HTML5 标签 当我在 FF 中单击右键并保存到文件时 文件的默认名称是 canvas png 由于我创建了很多文件并需要保存它们 这很不幸 因为我需要为每个文件设置不同的名称 我想要完成的是 当
  • 如何在 SQLExpress 文本字段中插入中文字符?

    如何在 SQLExpress 文本字段中插入中文字符 我使用的是 VS 2008 中的 SQL Express 当我添加中文字符时 无论是通过我编写的导入应用程序还是从 Visual Studio 内的数据视图粘贴它们 它们最终都会变成问号
  • View.OnClickListener() 函数或接口

    View OnClickListener 是函数还是接口 当我们尝试在 android 中设置 onclicklistener 方法时 我们使用 new View OnClickListener 据我所知 它让我感到烦恼 我们不需要初始化包
  • 回调函数的用处

    在 Javascript 中 可以定义一个函数 X 并将其作为参数传递给另一个函数 Y 这样的函数 X 称为callback function 您能否解释为什么在一些清晰的示例中使用回调函数很有用 例如发送一些带有演示的小提琴链接 我可以看
  • 根据文本区域的宽度计算文本大小

    我有一个文本应该设置为具有指定宽度的 TextView 它需要计算文本大小以适合 TextView 换句话说 有没有办法让文本适合 TextView 区域 就像 ImageView 比例类型功能一样 这应该是一个简单的解决方案 public