Android 是否有选项使ImageLoader.display(…)调用阻止当前(UI)线程,直到加载图像?
是的,我知道我在做坏事,但是…Android 是否有选项使ImageLoader.display(…)调用阻止当前(UI)线程,直到加载图像?,android,multithreading,universal-image-loader,Android,Multithreading,Universal Image Loader,是的,我知道我在做坏事,但是… 在某些情况下,我使用nostra13的ImageLoader从res/drawable文件夹加载图像。是否有一个内置选项在加载图像时阻止UI线程 我怀疑可能没有这样的事情,因为ImageLoader的主要目标是从Internet加载图像,在这种情况下,异步模式是唯一的选择。但在我的情况下,这会很方便。 目前我正在使用它来加载和缩小大背景图像,这需要一些明显的时间。如果你只是从res/drawable加载一个片段的背景,那就用“正常”的方式吧 将该图像作为根视图的背
在某些情况下,我使用nostra13的ImageLoader从
res/drawable
文件夹加载图像。是否有一个内置选项在加载图像时阻止UI线程
我怀疑可能没有这样的事情,因为ImageLoader的主要目标是从Internet加载图像,在这种情况下,异步模式是唯一的选择。但在我的情况下,这会很方便。
目前我正在使用它来加载和缩小大背景图像,这需要一些明显的时间。如果你只是从
res/drawable
加载一个片段的背景,那就用“正常”的方式吧
将该图像作为根视图的背景放在片段XML文件中
当然,如果可以选择用户/主题,只需在onCreateView期间在根视图上调用setBackgroundResource
编辑:
ImageLoader本身我不知道,但我最近一直在使用毕加索库,它很漂亮,处理图像非常好,它非常灵活,可以通过调用:Picasso.with(context).load().get()
来实现你想要的:现在有一种方法可以同步加载和缩放位图:
但是这样做几乎从来都不是一个好主意,因为GUI应用程序应该是响应性的,这意味着——在一段明显的时间内永远不要阻塞UI线程。永远不要阻塞UI线程。你为什么要这么做?我正在使用UniversalImageLoader从SD卡加载、缩放和缓存图像,它的工作非常顺利。再解释一下这个问题。@Herrmann问题是片段在几秒钟内没有背景,这看起来很糟糕。顺便说一句,我可以想出其他方法:在没有背景的情况下隐藏所有其他视图。使用UniversalImageLoader加载图像。也可以使用它的内存缓存。缓存bg图像后显示片段。在某些情况下,这可能更好,但似乎没有缓存,每次重新创建片段视图时都会导致打嗝。(我以前也这样做过)实际上我使用了一个放在所有其他视图下的ImageView,因为我可以使用centerCrop
缩放类型来保存纵横比。但让我们分析一下手头的问题。Android框架正在从res/drawable
获取一个PNG文件,将其缩放并放置在ImageView中,这会导致UI线程中出现HIPCup。因此,您希望ImageLoader库:从res/drawable
中获取一个PNG文件,将其缩放并放置在ImageView中,但不知何故,这一次将不会出现hipcups?没道理,嗯?另外,我用一种可能的方法编辑了我的答案,即使你不同意我的答案。ImageLoader不会每次都引起打嗝,因为它使用缓存,所以它不需要每次都解码和调整图像大小。(例如,在ontrimmory