是否可以将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.
答案 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);
}
});