我必须在我的活动中将相同的图像设置为两个图像视图。图片是从互联网上下载的,并通过以图片的url和一个imageview为参数的方法异步设置到imageview 1。
我可以将 imageview 2 的源与 imageview 1 同步(即,只要在图像 1 中设置图片,它也会将其设置为图像 2)?
我必须在我的活动中将相同的图像设置为两个图像视图。图片是从互联网上下载的,并通过以图片的url和一个imageview为参数的方法异步设置到imageview 1。
我可以将 imageview 2 的源与 imageview 1 同步(即,只要在图像 1 中设置图片,它也会将其设置为图像 2)?
您可以更改下载方法,使其接受 ImageView 或varargs的列表或数组:download(String url, ImageView... imageViews)
更新:ImageViews
可以通过子类化来完成同步。
class MyImageView extends ImageView {
private OnImageChangedListener onImageChangedListener;
public MyImageView(Context context) {
super(context);
}
// Plus other constructors if needed
// Call to super method and do callback
// Override another method if needed
@Override
public void setImageBitmap(Bitmap bitmap) {
super(bitmap);
if (onImageChangedListener != null) {
onImageChangedListener.onImageChanged(bitmap);
}
}
public setOnImageChangedListener(OnImageChangedListener listener) {
this.onImageChangedListener = listener;
}
public interface OnImageChangedListener() {
public void onImageChanged(Bitmap bitmap);
}
}
并设置监听器:
MyImageView imageView1 = ...
imageView1.setOnImageChangedListener(new OnImageChangedListener() {
@Override
public void onImageChanged(Bitmap bitmap) {
imageView2.setImageBitmap(bitmap);
}
});
download(url, imageView1);