If *_*Art 25 android text rendering
我在这里找到了很好的搜索,无法找到解决方案.
我在RelativeLayout中有一个包含整数的TextView.数字将介于1到99之间 - 任何人都可以告诉我如何调整TextView的大小,使其宽度始终是字符串"99"的宽度,即使它只包含"1"?
我需要这个,因为TextView右侧组件的位置取决于它的宽度,因此所有位置都取决于TextView包含的位数.
我不介意这是用XML还是代码完成的 - 我只是想避免设置TextView的宽度(以像素为单位)!
感谢任何可能的解决方案; 请问我是否错过了任何重要信息!
小智 60
试试这个:
android:layout_width="wrap_content"
android:minEms="2"
Run Code Online (Sandbox Code Playgroud)
pfo*_*han 19
如果您的字体是等宽字体,则Ems可以工作.对于比例字体,你希望它的宽度为两个'0',而不是两个'm'.您可以像这样回退到TextPaint.measureText:
float measureText = zip.getPaint().measureText("00000");
zip.setWidth(zip.getPaddingLeft() + zip.getPaddingRight() + (int) measureText);
Run Code Online (Sandbox Code Playgroud)
最好的方法是使用TextPaint. 这是一个简单的例子:
TextPaint textPaint = new TextPaint();
textPaint.setTextSize(yourTextView.getTextSize());
yourTextView.setMinWidth((int) textPaint.measureText("-88.88"));
Run Code Online (Sandbox Code Playgroud)
不要忘记在 TextPaint 对象中指定文本大小
,输入measureText您期望看到的最长的可能字符串(我写了“-88.88”,假设我的文本可以处理 100 以下的正数或负数,逗号后有 2 位数字)