我怎样才能使用 Glide 的 singleRequest 模型?

How can I take singleRequest model by Glide?

我可以在这段代码中使用 Glide 将图像路径加载到 imageView:

GlideApp.with(context)
                .load(imagePath)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .transition(withCrossFade())
                .into(imageView);

我不想从 imageView.

加载之前注册的相同路径或位图

==============更新=================

我找到了这个解决方案(感谢 ADM):

Glide 自动执行 setTag() 函数,当我调用 imageView.getTag() 函数时,结果是派生 SingleRequest 已加载数据(imagePath 或位图)。

但是我无法访问 singleRequest model 字段,它是私有的。我如何获取 singleRequest model 字段?请帮助我。

您不能使用 Glide 或任何其他库从 imageView 获取 "image path",可以在 imageView 中设置图像位图或背景,这样您可以根据需要从 imageview 取回位图,但您无法获取从图像视图返回的图像路径。 如果你想记住图像路径,你将在 imageview 中作为位图应用,你可以通过将图像路径添加到 arraylist 并在需要时使用它来实现

试试这个代码:

Glide.with(this).load(Uri.parse(resultUri)).asBitmap().into(new SimpleTarget<Bitmap>() {

                @Override
                public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {

                    if (resource != null) {

                        myTouchView1.setImageBitmap(resource);
                    }
                }
            });

你应该阅读:

Guide Documentation

图像路径类似于:

String asseturl = "file:///android_asset/demo1.jpg";
Glide.with(context).load(asserturl)....

如前所述,您应该将 url 标记为 view.setTag()

这里setTag(Object object)以对象为参数。每当我们调用 getTag() 时,我们都需要转换它。下面是示例。

 view.setTag("htttp://www.imgur.3877383.jpg");
    String url =(String)view.getTag();
    if(url!=null){
        // Use the url
    }

因为参数是一个对象,因此您还可以添加 class 对象作为标签。

   view.setTag(myPozo);
    MyPozo myPozo =(MyPozo)view.getTag();
    if(myPozo!=null){
        // Use the pozo
    }

我也不知道这个 .但是,如果您正在处理列表(ListView 或 RecyclerView 等),那么您可以直接按位置访问视图附带的数据集。