如何通过Glide采用singleRequest模型?

时间:2018-02-26 08:03:26

标签: android image imageview android-glide

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

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

我不想从imageView 加载以前注册过的相同路径或位图。

============== UPDATE =================

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

Glide自动执行setTag()功能,当我调用imageView.getTag()函数时,结果导出已加载数据的SingleRequest(imagePath或位图)。

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

3 个答案:

答案 0 :(得分:1)

如上所述,您应使用country code标记网址。

这里view.setTag()将对象作为参数。每当我们打电话setTag(Object object)时,我们都需要施展它。下面就是一个例子。

getTag()

原因Argument是一个Object,因此您也可以将类对象添加为标记。

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

我也不知道使用这个。但是如果您正在使用List(ListView或RecyclerView等),那么您可以按位置直接访问随视图附加的数据集。

答案 1 :(得分:0)

你不能采取"图像路径"通过使用Glide或任何其他库从imageView,可以在imageView中设置图像位图或背景,以便您可以从imageview获取位图,但是您无法从imageview获取imagepath。 如果你想记住图像路径,你将在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);
                    }
                }
            });

答案 2 :(得分:-2)

你应该阅读:

Guide Documentation

图像路径类似于:

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