2

我必须在我的活动中将相同的图像设置为两个图像视图。图片是从互联网上下载的,并通过以图片的url和一个imageview为参数的方法异步设置到imageview 1。

我可以将 imageview 2 的源与 imageview 1 同步(即,只要在图像 1 中设置图片,它也会将其设置为图像 2)?

4

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);
于 2011-06-15T07:25:43.627 回答