2012-08-01 60 views
2

我有一个EditText。例如,如果文本的长度大于10,我想调整EditText中的文本大小。Android如何调整EditText中的文本大小

如何做到这一点?

谢谢。欣赏!

+0

你究竟需要做什么?当字符数超过10时,是否需要减小字体大小/文本大小? – sunil 2012-08-01 09:07:43

+0

它已写入@sunil“如果文本的长度大于10,我想调整EditText中的文本大小。” 。你在问什么? – 2012-08-01 09:14:54

+0

@CodersParadise我需要澄清他是否想过自己做文本对齐或调整大小? – sunil 2012-08-01 09:32:53

回答

2

你可能更喜欢使用TextWatcher代替OnKeyListener(这显然针对硬件键):

final float size1 = 30, size2 = 15; 

    final EditText edit = new EditText(this); 
    edit.setTextSize(size1); 

    edit.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      if(s.length() > 10) { 
       edit.setTextSize(size2); 
      } 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 
     } 
    }); 
+0

是的,@菲德勒,它真的工作正常.. – 2012-08-01 09:18:06

3

这应该做的伎俩:

final EditText et = (EditText) findViewById(R.id.editTextId); 
et.setOnKeyListener(new OnKeyListener() { 
    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if(et.getText().length()>10) { 
      et.setTextSize(newValue); 
     } else { 
      et.setTextSize(oldValue); 
     } 
     return false; 
    } 
}); 
+0

是一个很好的答案。 – 2012-08-01 09:06:48

0

请尝试:

if(myEditText.getText().toString().lenght() > 10) 
{ 
     myEditText.setTextSize(6); 
} 
else 
{ 
     myEditText.setTextSize(10); 
}