Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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
Java 使用asynctask更新GridView_Java_Android_Gridview_Android Asynctask - Fatal编程技术网

Java 使用asynctask更新GridView

Java 使用asynctask更新GridView,java,android,gridview,android-asynctask,Java,Android,Gridview,Android Asynctask,我在很多地方读到过,您不能从ui线程外部访问gridview,但我相信这就是导致我的gridview加载时间过长的原因。我有75张图片,它让ui挂起,所以看起来我的应用程序被冻结了。是否有一种方法可以使用异步任务将图像从ui线程加载到网格视图中?还是有不同的方法来实现这一点? < P>你应该考虑图像的懒惰装载器。 我建议您改变方法: 立即显示除图像外的所有数据,然后使用惰性加载程序加载图像。如果图像重复,甚至可以实现图像缓存 这种方法会提高用户界面的速度,然后它不喜欢应用程序被冻结。正如Bosk

我在很多地方读到过,您不能从ui线程外部访问gridview,但我相信这就是导致我的gridview加载时间过长的原因。我有75张图片,它让ui挂起,所以看起来我的应用程序被冻结了。是否有一种方法可以使用异步任务将图像从ui线程加载到网格视图中?还是有不同的方法来实现这一点?

< P>你应该考虑图像的懒惰装载器。 我建议您改变方法: 立即显示除图像外的所有数据,然后使用惰性加载程序加载图像。如果图像重复,甚至可以实现图像缓存


这种方法会提高用户界面的速度,然后它不喜欢应用程序被冻结。

正如Bosko提到的,你需要从主用户界面线程中延迟加载图像。我发现一个很好的方法来消除做这件事的所有痛苦,那就是使用一个像这样的库,使它变得非常简单。如果您试图自己创建一个懒惰的加载程序,它将处理您将遇到的所有陷阱。

谢谢,该库很容易设置,但我有一个问题。您知道如何使用可绘制引用而不是url吗?我尝试使用URL.adddrawable://+R.drawable.image;但它使imageview为空。是的,它可以加载资源:Picasso.withcontext.loadR.drawable.landing_screen.intoimageView1;从页面