一个ImageView的多个图像

问题描述 投票:1回答:2

所以我正在寻找解决方案。我目前有一个Firebase数据库,用于存储我所有用户的信息。然后我把它放到ImageViewTextView中,通过运行一个单值事件的监听器,它给了我一个我能够迭代的用户列表。

关键是我不想刷卡以改变他们正在看的用户;我希望他们点击一个按钮。这是当前的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);
        }
    }
});

目前,一旦按下按钮,此过程在用户之间切换所需的时间太长,因此必须有更有效的方法来执行此操作。有没有办法预加载下一个图像,以便加快加载时间?

java android android-glide
2个回答
0
投票

您应该仅在启动时获取并添加Arraylist中的所有详细信息。然后,您可以根据按钮单击从列表中获取特定详细信息。


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预加载图像的另一种解决方案。

请务必查看以上链接,并告知我们信息是否有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.