我正在尝试在扩展 SimpleDraweeView
的自定义视图中为启动画面绘制精灵(可绘制图像)。我有大约 30 个图像要使用 int logo_frame_drawables[]
从我的 drawables 目录加载。通过从自定义视图中调用 setImageResource()
来正常绘制它们不会用 fresco 平滑地呈现动画,从 Android Studio 重新运行应用程序可以让动画在 Activity 时平滑地呈现重新启动(我猜此时精灵已被 fresco 缓存,并且自重用以来没有打嗝运行)。我现在的问题是我决定按照
Uri[] logo_frames=...;
logo_frames[i]=resourceToUri(resources, logo_frame_drawables[i]);
ImageRequest request= ImageRequestBuilder.newBuilderWithSource(logo_frames[i]).setResizeOptions(new ResizeOptions(width, height)).build();
Fresco.getImagePipeline().prefetchToBitmapCache(request, null);
这样一旦所有图像都被缓存,在之后开始动画 总是很顺利。事实证明缓存使事情变得更糟,我似乎无法在官方网站上找到有关如何执行此操作的任何相关指南。请问正确的方法是什么
<块引用>我还使用 setImageURI()
在自定义视图中绘制图像,因为每个图像都使用相同的 uri 预取到缓存中
更新:令我惊讶的是Fresco.getImagePipeline().isInBitmapMemoryCache(uri)
对于从 RequestListener
< /p>