ImageView 内容加载到另一个 ImageView

ImageView content loading from to another ImageView

是否可以将 ImageView 写入另一个 ImageView?

例如:

        ImageView image1= (ImageView)findByVie(R.id.image1)
        ImageView image2= (ImageView)findByVie(R.id.image2)

        Glide.with(context).load(url).into(image1);

    image2=image1 
// I want to write image from image 1 
//to image 2 without loading it again from internet.
Bitmap bm=((BitmapDrawable)imageView1.getDrawable()).getBitmap();
imgview2.setImageBitmap(bm);

使用这个:

ImageView image1 = (ImageView)findViewById(R.id.image1);
ImageView image2 = (ImageView)findViewById(R.id.image2);

Glide.with(context).load(url).into(image1);
image2.setImageDrawable(image1.getDrawable();

然而,根据 Glide 的工作方式,它会缓存已加载的图像,因此再次调用 Glide.with(context).load(url).into(image2); 只会从缓存中加载图像,而不是再次从远程服务器加载图像。

编辑:

如果你在调用 Glide 之后直接调用 getDrawable 那么它不会工作,因为 Glide 仍在获取图像所以第一个图像视图仍然是空的。您需要使用滑行回调以确保在调用 getDrawable

之前图像已加载
Glide.with(context).load(url).listener(new RequestListener).into(image1); 

因为您正在使用 Glide 从 url 加载图像。 Glide 将使用其缓存为第二个图像视图加载图像,它不会使用互联网在第二个图像视图中加载相同的图像。

当然你也可以使用下面的方式加载一次图片

  Glide.with(this).load("url").into(new SimpleTarget<GlideDrawable>() {
                @Override
                public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {

                    image1.setImageDrawable(resource);
 image2.setImageDrawable(resource);


                }
            });