android - 以编程方式设置后获取奇怪的字体大小

标签 android textview text-size screen-density

我正在尝试以编程方式设置 TextView 字体大小。

txtView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);

但是当我通过

检查这个尺寸时
Toast.makeText(this, "txt: " + txtView.getTextSize(), Toast.LENGTH_SHORT).show();

Toast 显示大小为“24”,比我之前设置的大 50%。

我测试了多个值并且总是得到相同的结果:

8 becomes 12
10 becomes 15
15 becomes 22.5
etc.

我尝试设置的字体总是变大 50%。

为什么会这样?我哪里出错了?

最佳答案

我相信这是因为 TextView.getTextSize()返回以 像素 为单位的文本大小,而不是 sp 单位,无论您首先使用什么单位类型来设置文本大小。

此外,another SO thread讨论了如何将其转换为 sp 单位。

关于android - 以编程方式设置后获取奇怪的字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22465566/

相关文章:

android - 如何在 android 中建立像弹出窗口一样的 facebook 评论?

android - 在 IntelliJ 中编译时找不到模块包

android - getString(int resId, Object... formatArgs) 方法中参数的样式文本

Android TextView 的下标被剪掉

android - 如何根据屏幕尺寸设置文字大小?

java - 最佳 Jtable 大小 java

android - 如何跟踪用户在我的 Android 应用程序上花费了多少时间?

java - ParseObject.pinAllInBackground() 结果与 NullPointerException

Android - 如何在 ListView 或 ExpandableListView 中为 TextView 设置填充

javascript - @media 用于 Javascript 文本动画