【问题标题】:Android: Adjusting EditText font size to fit text to one lineAndroid:调整 EditText 字体大小以使文本适合一行
【发布时间】:2011-11-24 09:50:10
【问题描述】:

我正在制作一个有两个EditText 视图的应用程序,txtOne 用于输入,txtTwo 用于输出。 txtOne 可编辑,txtTwo 不可编辑。

我正在寻找在这两个视图中scale the font size of the text 的简单方法,以便它始终适合视图而不换行。

我发现了一些使用扩展 TextView 的自定义视图的实现,但它们不适合 EditText 视图,或者使用 android.graphics.Paint,这不是我想要的。

有什么方法可以检查EditText 视图中的文本何时换行?如果是这样,那么做这样的事情就很容易了:

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

有没有人知道任何方法来检测这个或替代解决方案?

【问题讨论】:

标签: java android android-edittext font-size


【解决方案1】:

我删除了我的帖子

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

我建议阅读this question and answers,因为它们解决了相同的问题...

【讨论】:

  • +1 for TextWatcher -- 我忘记了您可以在 TExtWatcher 中使用 beforeTextChanged 事件,而在制作自定义 EditText 视图时则不能。然而,这个具体的例子只是从一开始就使字体大小非常非常小。我觉得我的代码中的某些内容导致文本更改事件多次触发,但在我的情况下这是另一个问题:我对文本内容做了很多微妙的更改,所以这一定会发生。仍在寻找不同的解决方案
  • 我很垃圾 ;-) 我想你在你的问题中提到了this post。我的想法与那个完全匹配(甚至通过二分搜索的改进;-),但他提供了一个完整的实现。您是否尝试过使用它并简单地扩展EditText 而不是TextView(因为EditText 无论如何都扩展了TextView)。
  • 我发现那个帖子有点早,我正在看它。我想我已经为我的非常具体的案例找到了一个解决方案(我没有什么可以分享的一般情况)。我已经设置了很多处理程序,所以我基本上做了一些计算来调整字体大小。
猜你喜欢
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
  • 2019-09-20
  • 2015-12-10
  • 2015-09-16
相关资源
最近更新 更多