Android:任何设备上的文本框中的字体大小不能大于 717px

Posted

技术标签:

【中文标题】Android:任何设备上的文本框中的字体大小不能大于 717px【英文标题】:Android: Font size can't be larger than 717px in a text box on any device 【发布时间】:2015-02-23 01:06:32 【问题描述】:

我希望屏幕的某个部分应该有一个数字。但是在处理这个问题时,我遇到了一个问题,对于某些屏幕,文本没有显示并且 logcat 显示 -> 字体大小太大而无法放入缓存。在努力解决问题时,我尝试了某些代码,发现只要文本大小大于 717 像素,logcat 就会显示该错误。

所以,我想知道规则是什么android 的任何设备上的文本大小都不能超过 717 像素吗?

在 MOTO G 手机、Nexus 5 模拟器上测试

我试过这个来测试

Java

protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_
android:layout_>


   <TextView android:layout_
        android:layout_
        android:text="1"
        android:textSize="717px"/>

</RelativeLayout>

现在,当 android:textSize 为 717 px 时,屏幕上显示“1”,但当我执行 718px 或更高时,我收到错误 -> 字体太大而无法放入缓存。宽度、高度 = 170、511。

这个错误是什么意思?

文本框高度足够大,可以容纳 717px 中的 1 个,因为以下是我测试代码的设备的尺寸,文本框是 match_parent

Nexus 5 -> 屏幕尺寸 1080*1920 像素

Moto g -> 屏幕尺寸 720*1280 像素

【问题讨论】:

由于神奇的数字:717px而来到这个问题。我正在研究与打印纸尺寸相匹配的 CSS 媒体查询。在 Chrome 中,717 像素的宽度相当于一张 A4 纸的宽度。 483px 似乎是 Chrome 中 A5 纸的宽度,顺便说一句。 【参考方案1】:

像这样尝试..

<TextView android:layout_
            android:layout_
            android:text="1"
            android:textSize="717px"/>

也添加这个..n 试试

urtextview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

参考: Font size too large to fit in cache

【讨论】:

相同的场景在 718px 及以上的情况下不起作用 是的,感谢它现在的工作。但这是什么。请解释! 查看extremetech.com/computing/… 非常感谢。我从 2 天开始就一直在研究这个

以上是关于Android:任何设备上的文本框中的字体大小不能大于 717px的主要内容,如果未能解决你的问题,请参考以下文章

IE 9 - 更改字体大小后文本框中的文本被截断(百分比)

Android 上的 Chrome 调整字体大小

Android:文本视图大小和不同的字体大小

Android 和 iPhone 的文本缩放不同

将UIView中UILabel的字体大小调整为不同的设备大小

添加填充时,移动设备上的边缘会极大地减小字体大小