我有一个自定义的EditText类.在这个EditText中,我需要找出输入的宽度.根据EditText的inputType,文本具有不同的宽度值.
例如:
final String text = "azazaz";
setText(text);
> inputType是密码,因此用户可以看到:******(例如40px)
>没有inputType,因此用户可以看到:azazaz(例如60px)
但是下面的代码将在两个选项中设置textWidth的相同值(没有inputType的文本宽度)
final Paint p = new Paint();
p.setTextSize(getTextSize());
final float textWidth = p.measureText(text);
问题:如何使用密码inputType找到文本的实际宽度值?
最佳答案 您可以尝试计算由相同数量的密码字符组成的字符串的宽度:
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);
}