我有一个TextView我注册以下动画:
mScaleAnimation = new ScaleAnimation(1f, 1.2f, 1f, 1.2f,
mReferenceTextView.getWidth() / 2, mReferenceTextView
.getHeight() / 2);
mScaleAnimation.setRepeatCount(Animation.INFINITE);
mScaleAnimation.setRepeatMode(Animation.REVERSE);
mScaleAnimation.setDuration(500);
Run Code Online (Sandbox Code Playgroud)
它工作正常,看起来很酷:)
我唯一担心的是:当我看到logcat时,它完全无法使用,因为只要动画正在运行,我会不断地每秒多次获取这些日志:(
06-20 17:50:05.555: DEBUG/skia(14179): purging 213K from font cache [7 entries]
06-20 17:50:05.750: DEBUG/skia(14179): purging 196K from font cache [7 entries]
06-20 17:50:05.870: DEBUG/skia(14179): purging 202K from font cache [8 entries]
06-20 17:50:05.995: DEBUG/skia(14179): purging 190K from font cache [8 entries]
Run Code Online (Sandbox Code Playgroud)
在TextView使用自定义字体/字体(在OTF格式).
是什么原因导致字体缓存的繁重工作?
我相信你的缓存正在被杀死,因为你正在生成大量的 TypeFace 对象。我猜这是 ICS 之前的版本?有一个错误会保留 TypeFaces 并且无法正确释放它。因此,当您制作动画时,它会不断为每个位置创建新对象,并且它们会泄漏并且永远不会被清理。
我发现有人建议用 HashMap 创建 TypeFace 缓存。您可以查看这篇文章以了解更多详细信息。自定义字体和 XML 布局 (Android)
| 归档时间: |
|
| 查看次数: |
1142 次 |
| 最近记录: |