从库中选择1个图像并在多个ImageView上显示

时间:2017-12-05 09:07:51

标签: android android-intent bitmap imageview android-gallery

ImageView imageView = (ImageView) findViewById(R.id.Gallery);
    imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent galleryIntent = new Intent(Intent.ACTION_PICK,
                    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            // Start the Intent
            startActivityForResult(galleryIntent, RESULT_LOAD);

        }
    });

} 
   @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    // When an Image is picked
    if (requestCode == RESULT_LOAD && resultCode == RESULT_OK
            && null != data) {
        // Get the Image from data

        Uri imageUri = data.getData();
        InputStream imageStream = null;
        try {
            imageStream = getContentResolver().openInputStream(imageUri);
            ImageView imageView = (ImageView) findViewById(R.id.Gallery);
            imageView.setImageBitmap(BitmapFactory.decodeStream(imageStream));
        } catch (FileNotFoundException e) {
            // Handle the error
        } finally {
            if (imageStream != null) {
                try {
                    imageStream.close();
                } catch (IOException e) {
                    // Ignore the exception
                }
            }
        }
    }

}

此代码适用于向一个imageView添加和映像。如何通过仅选择一次图像而不是为每个imageView重复该过程来使其显示在多个imageView中

2 个答案:

答案 0 :(得分:0)

How can i get it to be displayed in multiple imageViews by just selecting an image 

从流中创建Bitmap

然后将位图分配给您想要的图像视图。

答案 1 :(得分:0)

这样的代码:

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// When an Image is picked
if (requestCode == RESULT_LOAD && resultCode == RESULT_OK
        && null != data) {
    // Get the Image from data

    Uri imageUri = data.getData();
    InputStream imageStream = null;
    try {
        imageStream = getContentResolver().openInputStream(imageUri);
        ImageView imageView = (ImageView) findViewById(R.id.Gallery);

   imageView.setImageBitmap(BitmapFactory.decodeStream(imageStream));
   imageView1.setImageBitmap(BitmapFactory.decodeStream(imageStream));
   imageView2.setImageBitmap(BitmapFactory.decodeStream(imageStream));
   imageView3.setImageBitmap(BitmapFactory.decodeStream(imageStream));
    } catch (FileNotFoundException e) {
        // Handle the error
    } finally {
        if (imageStream != null) {
            try {
                imageStream.close();
            } catch (IOException e) {
                // Ignore the exception
            }
        }
    }
}

这里,imageView,imageView1,imageView2,imageView3是不同图像视图的实例。

编辑:

  @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// When an Image is picked
if (requestCode == RESULT_LOAD && resultCode == RESULT_OK
    && null != data) {
  // Get the Image from data

  Uri imageUri = data.getData();
  InputStream imageStream = null;
  try {
    imageStream = getContentResolver().openInputStream(imageUri);
     Bitmap bitmap = BitmapFactory.decodeStream(imageStream);


            imageView.setImageBitmap(bitmap);
            imageView1.setImageBitmap(bitmap);
            imageView2.setImageBitmap(bitmap);
            imageView3.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
    // Handle the error
} finally {
    if (imageStream != null) {
        try {
            imageStream.close();
        } catch (IOException e) {
            // Ignore the exception
        }
    }
}
}

编辑2:

 public class ThirdJavaActivity extends Activity {

ImageView imageView,imageView1,imageView2,imageView3;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.content_third);

    imageView = (ImageView)findViewById(R.id.imageView);
    imageView1 = (ImageView)findViewById(R.id.imageView1);
    imageView2 = (ImageView)findViewById(R.id.imageView2);
    imageView3 = (ImageView)findViewById(R.id.imageView3); 

   Intent galleryIntent = new Intent(Intent.ACTION_PICK,
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    // Start the Intent
    startActivityForResult(galleryIntent, 101);

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
 // When an Image is picked
    if (requestCode == 101 && resultCode == RESULT_OK
            && null != data) {
        // Get the Image from data

        Uri imageUri = data.getData();
        InputStream imageStream = null;
        try {
            imageStream = getContentResolver().openInputStream(imageUri);

            Bitmap bitmap = BitmapFactory.decodeStream(imageStream);

            imageView.setImageBitmap(bitmap);
            imageView1.setImageBitmap(bitmap);
            imageView2.setImageBitmap(bitmap);
            imageView3.setImageBitmap(bitmap);
        } catch (Exception e) {
            // Handle the error
        } finally {
            if (imageStream != null) {
                try {
                    imageStream.close();
                } catch (IOException e) {
                    // Ignore the exception
                }
            }
        }
    }
}
}