所以我正在寻找解决方案。我目前有一个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);
}
}
});
当前,一旦按下按钮,此过程将花费很长时间在用户之间切换,因此必须有一种更有效的方法。有什么方法可以预加载下一张图像,从而缩短加载时间?
答案 0 :(得分:0)
您应该仅在开始时获取并在Arraylist中添加所有详细信息。然后,您可以通过单击按钮从列表中获取特定的详细信息。
答案 1 :(得分:0)
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
预加载图像的另一种解决方案。
请务必查看上面的链接,并让我知道该信息是否有帮助。