根据字符设置TextView的宽度

时间:2011-05-28 14:48:24

标签: android width textview

真的在寻找answer to this

想要根据一个或多个字符设置TextView的宽度。因此,如果我希望它总是3个字符宽,我可以设置它,它将根据textSize设置进行调整。如果没有这个,我必须将宽度设置为50dip或其他东西,根据字体大小,可能是也可能不对。

4 个答案:

答案 0 :(得分:153)

回答我自己的问题......

获胜者是:设置minEms属性(android:minEms)!!!

所以“ems”结果是指最宽的角色的大小,通常是“M”,得到它?因此,在EditText或TextView上将minEms设置为整数值(例如3)应确保其宽度至少为3个字符。您也可以设置maxEms。

所以凯尔在这个帖子上的答案虽然错了,但却让我找到了答案,所以谢谢凯尔。

答案 1 :(得分:0)

大多数字体都没有将所有字符宽度设置为相同。 Courier也许是最常用的例外,但通常会看一下i和A之间的区别。这就是你要求做一些问题。

答案 2 :(得分:0)

尝试使用:android:maxLength="3"

这会将文字限制为特定数量的字符。

答案 3 :(得分:0)

ems与流行的看法相反(或者至少从大多数关于ems的观点出发),并非基于单个“ M”的宽度。

它最初与印刷术类似,但在包括Android在内的数字媒体中,其含义已转变为所用字体的大小,或者换句话说,其高度(不包括重音符号和变音符号的空白)。

因此,这意味着当您为TextView指定ems时,它将以其textSize为基础并将其乘以指定的ems

作为示例,如果将16sp TextView的ems设置为4,则其宽度将为64sp。您可以通过在ConstraintLayout中并排使用两个TextView(将includeFontPadding设置为false)来轻松对其进行测试(以利用其layout_constraintDimensionRatio)。