我正在编写一个具有自定义文本布局引擎的应用程序,为此,我必须使用Paint类上的.getTextBounds()方法测量大量(数千)字符串。
确实有效。但在某些设备上,此测量值非常慢。
例如,测量10,000个5-6个字符长的单词
我已经完成了方法分析,我可以看到测量方法的原生Skia实现在某些设备上需要更长的时间。
我在测量过程中没什么好看的,我的代码看起来像这样:
Paint paint = new Paint();
Rect bounds = new Rect();
paint.setTextSize(22.0f);
for (int i = 0; i < input.length; i++) {
paint.getTextBounds(input[i], 0, input[i].length(), bounds);
}
测量文字尺寸时有什么值得注意的吗? 制造商是否搞砸了与ROM中字体缓存实现相关的内容?我能做点什么吗?