Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 是否有选项使ImageLoader.display(…)调用阻止当前(UI)线程,直到加载图像?_Android_Multithreading_Universal Image Loader - Fatal编程技术网

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