EditText动态改变文本大小 - 在两种尺寸之间交替变换?

时间:2013-07-20 00:10:15

标签: android android-edittext text-size

我试图限制EditText最多有3行,如果用户继续输入,字体将改变大小以适应三行的所有内容。

然而,一旦我越过3行,它就会在每个键盘输入后在原始字体大小和计算出的字体之间交替显示。

这就是我正在做的事情:

 editText.addTextChangedListener(new TextWatcher()
 {
        private String inputText;

        public void beforeTextChanged(CharSequence charSequence, int i,int i1, int i2) 
        {};

        public void onTextChanged(CharSequence charSequence, int i, int i1,int i2) 
        {};

        public void afterTextChanged(Editable ed)
        {
            int lineCount = editText.getLineCount();

            if(lineCount>=3)
            editText.setTextSize((float) 45/lineCount);
        };

在我编码的时候,45就是我现在正在使用的。

2 个答案:

答案 0 :(得分:0)

问题是“> =”符号......呃。我现在正在使用“>”告诉它什么时候过去3并根据它消失了多少次> 3来减少大小。完成后我会发布我的修复。

答案 1 :(得分:0)

这是我用来限制1行和最多3行的。当它穿过1行时也包裹文本。

android:minLines="1"
android:maxLines="3"
android:ellipsize="none"
android:scrollHorizontally="false"
android:text="sample text, a lot of text to encourage wrap text"