2

アクティビティでは、同じ画像を2つの画像ビューに設定する必要があります。画像はインターネットからダウンロードされ、画像のURLと1つの画像ビューをパラメータとして受け取る方法によって非同期的に画像ビュー1に設定されます。

imageview2のソースをimageview1と同期できますか(つまり、画像が画像1に設定されるとすぐに、画像2にも設定されます)?

4

1 に答える 1

2

ダウンロード方法を変更して、ImageViewまたはvarargsのリストまたは配列を受け入れるようにすることができます。download(String url, ImageView... imageViews)

Upd:同期は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 に答える