ImageView内容从另一个ImageView加载

时间:2016-10-28 08:50:24

标签: android imageview urlloader

是否可以将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.

3 个答案:

答案 0 :(得分:1)

使用此:

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仍在提取图片,因此第一张图片视图仍为空。您需要使用glides回调以确保在调用getDrawable

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

答案 1 :(得分:0)

Bitmap bm=((BitmapDrawable)imageView1.getDrawable()).getBitmap();
imgview2.setImageBitmap(bm);

答案 2 :(得分:0)

当您使用 Glide 从网址加载图片时。 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);


                }
            });