我看到了其他与这个问题非常相似的答案。但是,我希望计算器的显示屏显示正常数字,直到13位数字,然后在添加第14位数字时,开始以科学计数法显示。另外,我希望文本的大小减小,因为数字越过6位(就像在电话上使用的计算器之一一样)。
123456(最大文字大小)
1234567(文本大小减少一个单位)
12345678(文本大小减少一个单位)
123456789(文本大小减少一个单位)
1234567890(文本大小减少一个单位)
12345678901(文本大小进一步减小了单位,以适合显示textview上的所有数字)
1234567890123(文本大小一直减小到13位-这是最小文本大小,因此无法进一步减小)
当再加上一位数字时:1.2345678901234×10 ^ 12(以科学计数形式显示的数字)
我无法弄清楚在应用程序运行时如何更改文本大小以及如何以科学计数法显示数字-仅在数字超过13位之后。
谢谢。
我将创建一个称为ScientificNotationTextView的TextView子类。然后像这样覆盖setText函数:
public void setText(CharSequence text) {
int length = text.size();
setTextSize(getSizeForLength(length));
if(length > 13) {
NumberFormat formatter = new DecimalFormat("0.#####E0");
super.setText(formatter.format(text.toString());
}
else {
super.setText(text);
}
}
在这里,getSizeForLength应该返回要用于该长度的任何文本大小。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句