2011-09-24 72 views
1

我制作的应用程序有两个EditText的视图,txtOne用于输入,txtTwo用于输出。 txtOne是可编辑的,而txtTwo不可以。Android:调整EditText字体大小以适合文本到一行

我正在寻找一个简单的方法来在这两个视图中的scale the font size of the text,以便它总是适合视图内没有包装到一个新的行。

我发现这个使用自定义视图的一些实现延伸TextView,但它们不适合EditText视图,或使用android.graphics.Paint,这不是我正在寻找。

是否有任何方法检查以查看EditText视图中的文本是否正在包装?如果是这样,那么这将是很容易的做一些事情,如:

if(txtOne.isWrappingText()) { 
    txtOne.setTextSize(txtOne.getTextSize() - 2); 
} 

有谁知道有什么方法来检测这或可替代的解决方案?

+0

看到这个答案:http://stackoverflow.com/a/7875656/435605 –

回答

2

我删除我的帖子

基本上建议的代码包含在TextWatcherEditText,这有助于回答这个问题。但代码本身是错误的(我同时测试了它)。

我建议阅读this question and answers因为他们ADRESS非常相同的问题...

+0

+1 TextWatcher - 我忘了你可以在TExtWatcher中使用beforeTextChanged事件,而在制作自定义EditText视图时不能使用该事件。然而,这个特定的例子只是使字体从一开始就非常小。我觉得我的代码中的东西导致文本更改事件多次触发,但这是我的情况的另一个问题:我对文本内容做了很多微妙的更改,所以这一定会发生。仍然在寻找不同的解决方案 – WilHall

+1

我是如此转储;-)我想你会[这篇文章](http://stackoverflow.com/questions/2617266/how-to-adjust-text-font-size-to-fit -textview/3378422#3378422)在你的问题。我的想法完全符合这一点(即使是通过二分搜索进行改进;-),但他提供了一个完整的实现。你有没有尝试过使用它,只需扩展一个'EditText'而不是'TextView'(因为'EditText'无论如何扩展了'TextView')。 – Knickedi

+0

我发现这篇文章稍早,我正在看它。我认为我已经找到了一个针对我的特定情况的解决方案(我可以分享的任何一般信息)。我已经安排了很多处理程序,所以我基本上做了一些计算来调整字体大小。 – WilHall