【问题标题】:Multiple Images for one ImageView一个 ImageView 的多个图像
【发布时间】:2019-03-24 23:04:19
【问题描述】:

所以我正在寻找解决方案。我目前有一个存储所有用户信息的 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);
        }
    }
});

目前,一旦按下按钮,此过程在用户之间切换所需的时间太长,因此必须有更有效的方法来执行此操作。有什么方法可以预加载下一张图片以加快加载速度?

【问题讨论】:

  • 变量mainNamemainAge都是TextViews吗?
  • 他们确实是

标签: java android android-glide


【解决方案1】:

您应该只在开始时获取并添加 Arraylist 中的所有详细信息。然后根据按钮点击从列表中获取具体细节。

【讨论】:

    【解决方案2】:

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

    请务必查看上面的链接,如果信息有帮助,请告诉我。

    【讨论】:

    • 因此,如果您只加载 2 张图像,此答案有效。事实上,我正在加载图像 1...预加载图像 2...那么下一次需要围绕图像 1图像 2 和图像 2 的 url 需要成为下一张图像,这阻止了我将其用作最终解决方案。除非我遗漏了某些东西,否则您调用图像的方式是使用相同的 url 变量,在这种情况下,该变量会在 glide 语句之前发生变化
    • 也许将 URL 放入一个数组中,然后在每次单击按钮时更新索引。
    猜你喜欢
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    相关资源
    最近更新 更多