【发布时间】:2017-09-07 21:50:43
【问题描述】:
我正在将图像加载到 recyclerview,从网络加载图像大约需要 30 秒。代码如下:
public void bindEvent(Event event){
datetime.setText(event.getTime());
description.setText(event.getDescription());
event_name.setText(event.getName());
Picasso.Builder builder = new Picasso.Builder(context).loggingEnabled(true);
builder.build().load(event.getEventPicUrl()).fit().into(event_picture);
}
这是图像视图的代码:
<ImageView
android:id="@+id/event_picture"
android:layout_width="match_parent"
android:layout_height="200dp"
/>
【问题讨论】:
-
你的图片尺寸是多少?
-
@MohammedAtif 大小在 500 到 700 KB 之间
-
我真的不认为这是您的性能问题的原因 - 但有一点需要注意:您似乎正在为每个
Event创建一个新的Picasso实例。因为这也会创建所有内部支持类(OkHttpDownloader、LruCache等)的新实例,这很可能不是您想要的。一般来说,您应该使用Picasso.with。如果你需要一个自定义实例,你应该在你第一次调用with之前调用setSingletonInstance来“部署”它。 -
@david.mihola 我已经改成 Picasso.with 但速度没有提高。
-
@zacmwa 如果您可以发布毕加索日志的摘录可能会有所帮助...您是否尝试过仅从网络加载一些其他图像,只是为了看看这是否是服务器问题?