EditText隐藏文字的宽度

时间:2016-05-17 07:24:41

标签: java android

我有一个自定义EditText课程。在这个EditText中,我需要找出输入的宽度。根据{{​​1}}的{​​{1}},文本具有不同的宽度值。

例如:

inputType
  1. inputType是密码,因此用户可以看到:******(例如40px)

  2. 没有inputType,因此用户可以看到:azazaz(例如60px)

  3. 但以下代码会在两个选项中设置EditText的相同值(不带final String text = "azazaz"; setText(text); 的文字宽度)

    textWidth

    问题:如何使用密码inputType查找文本的实际宽度值?

1 个答案:

答案 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);
}