【问题标题】:How can I get the actual text size in px(not textSize attribute)?如何获取 px 中的实际文本大小(不是 textSize 属性)?
【发布时间】:2021-08-20 05:37:55
【问题描述】:

我的问题不是关于字符数,也不是 TextView/EditText 中的 textSize 属性。

我有一个固定的 EditText。 maxLength 为 10。所有字符必须一次显示。 但是,每个字符都有不同的宽度和高度。例如,l 和 L。如果您将鼠标拖到(块选择)l 上,然后是 L。您会注意到它们的宽度不同。

所以,LLLLLLLLLL 和 llllllllll 有不同的宽度。

例如,

LLLLLLLLLL

嘀嘀嘀嘀

(都是10个字母)

另外,不同的字体显示不同的宽度。

我的问题是如何获取 PX 中字符的实际宽度,以便字符串不会隐藏在 EditText 中。假设 EditText 的宽度是 200px。并且限制为 10 个字母。它会显示

LLLL(LLLLLL) // (LLLLL) 由于 EditText 的宽度而未显示。但是移动光标时可以看到。

嘀嘀嘀嘀

如何获得字符的宽度?

【问题讨论】:

标签: android unicode textview char android-edittext


【解决方案1】:

您可以使用TextPaint 并测量字母,但有一种更简单的方法适合您的情况。熟悉em unit

您可以通过setEms(intNum)android:ems="intNum"EditText/TextView 声明此值。也将宽度设置为wrap_content,您的View 的宽度将是intNum 最宽的字符(通常是Ms)。还有有用的minEmsmaxEms属性

编辑:HERE你有更复杂的解释

附言。由于密度不同,请勿使用px 单位声明Views 的大小,请使用dpHERE中的一些单位解释

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-26
    • 2022-11-09
    • 2013-06-06
    • 1970-01-01
    • 2019-04-27
    • 2010-10-07
    • 1970-01-01
    相关资源
    最近更新 更多