真的在寻找answer to this。
想要根据一个或多个字符设置TextView的宽度。因此,如果我希望它总是3个字符宽,我可以设置它,它将根据textSize设置进行调整。如果没有这个,我必须将宽度设置为50dip或其他东西,根据字体大小,可能是也可能不对。
答案 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
)。