我有一个自定义EditText
课程。在这个EditText
中,我需要找出输入的宽度。根据{{1}}的{{1}},文本具有不同的宽度值。
例如:
inputType
inputType是密码,因此用户可以看到:******(例如40px)
没有inputType,因此用户可以看到:azazaz(例如60px)
但以下代码会在两个选项中设置EditText
的相同值(不带final String text = "azazaz";
setText(text);
的文字宽度)
textWidth
问题:如何使用密码inputType查找文本的实际宽度值?
答案 0 :(得分:2)
您可以尝试计算由相同数量的密码字符组成的字符串的宽度:
public static float calculateTextWidth(TextView textView, String text) {
final Paint p = new Paint();
p.setTextSize(textView.getTextSize());
String output = text;
TransformationMethod method = textView.getTransformationMethod();
if (method != null) {
output = (String) method.getTransformation(text, textView);
}
return p.measureText(output);
}