所以我正在寻找解决方案。我目前有一个Firebase数据库,用于存储我所有用户的信息。然后我把它放到ImageView
和TextView
中,通过运行一个单值事件的监听器,它给了我一个我能够迭代的用户列表。
关键是我不想刷卡以改变他们正在看的用户;我希望他们点击一个按钮。这是当前的onClick
听众:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
boolean verified;
//REMOVE USER FROM LIST
String matchUid = userList.get(0).getUid();
userList.remove(0);
}
// GET NEW USER
String url = userList.get(0).getPhoto1URI();
String name = userList.get(0).getFirstname();
final String userage = String.valueOf(userList.get(0).getAge());
// SET NEW USER
if(url != null && name != null) {
mainName.setText(name);
mainAge.setText(userage);
Glide.with(getApplicationContext())
.load(url)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.centerCrop()
.crossFade()
.error(R.drawable.addimage)
.into(profileImage);
}
}
});
目前,一旦按下按钮,此过程在用户之间切换所需的时间太长,因此必须有更有效的方法来执行此操作。有没有办法预加载下一个图像,以便加快加载时间?
您应该仅在启动时获取并添加Arraylist中的所有详细信息。然后,您可以根据按钮单击从列表中获取特定详细信息。
This post得到用户Vinay Wadhwa的回答,表明你可以使用.downloadOnly
:
FutureTarget<File> future = Glide.with(context)
.load(url)
.downloadOnly(width, height);
或者,您可以使用.preload
:
Glide.with(context)
.load(url)
.preload(width, height);
然后你可以通过调用它来使用图像:
Glide.with(context)
.load(url)
.into(imageView);
在我上面链接的同一篇文章中,接受的答案演示了使用LruCache
预加载图像的另一种解决方案。
请务必查看以上链接,并告知我们信息是否有帮助。