字体太大,无法容纳缓存

MrJ*_*Jre 20 android font-size hardware-acceleration android-3.0-honeycomb

所以我最近切换到android 3.0(蜂窝),我有一些硬件渲染的问题,特别是在某个自定义视图我写的我用字体大小200来显示一些文本.

不幸的是,考虑到我在日志中出现的错误,openGLRenderer似乎不太喜欢那种相当大的字体大小:

06-06 16:22:00.080: ERROR/OpenGLRenderer(2503): Font size to large to fit in cache. width, height = 97, 145
Run Code Online (Sandbox Code Playgroud)

有没有解决方法(或修复它的方法),以便我可以获得所需字体大小的文本?

小智 32

这实际上是硬件加速模块中Android操作系统中的一个错误.我认为最好的方法是要求系统避免在包含大尺寸文本的TextView上进行硬件加速.为此,只需添加代码:

TextView bigText = (TextView) findViewById(R.id.bigtext);
bigText.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这似乎不再适用于4.4(意思是:我不再看到错误了,但是没有绘制文本). (7认同)

Ste*_*cke 8

只是一个想法:也许你可以使用Paint.getTextPath(...)将字体转换为轮廓,并使用此路径来渲染文本.这应该允许您根据需要调整路径大小.

  • 你可以为此发一些代码吗?现在,我已经禁用了视图的硬件加速,因为它始终存在这个问题. (2认同)