我有固定大小的按钮,但文本会不时更改。 有时文本太长而无法放入按钮,对于这些情况,我想使用较小的文本大小。
如果文字太长,如何更改按钮文本大小?
(一种解决方案可能是测试可以与普通文本大小一起使用的字符数,然后如果长度大于此基线则更改文本大小。但我希望采用更加动态的方法。)
答案 0 :(得分:1)
1)测量按钮。 2)使用相同的字体,使用Paint.getTextBounds()来获取宽度。 3)将按钮的大小与宽度进行比较。您可能需要在两侧添加一些额外的空间用于填充,但无论如何这将是一个估计。 4)如果文本太大,请减小文本的大小(在Paint对象上)并转到2。 5)现在你有一个工作大小,在按钮上调用setTextSize。
注意:如果您正在为AlertDialog执行此操作,则需要在按钮存在后执行此操作 - 我在步骤1中遇到问题,具体取决于我放置此功能的位置,但是它已经很久了我忘了确切问题。我想在调用show之后我必须这样做吗?
答案 1 :(得分:1)
您可以将Button Class扩展为类似AutofitTextView
的类似内容