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