Спасибо за поддержку людей ... наконец-то я получил ответ. Нет необходимости использовать runnable, упомянутый в моем вопросе. Здесь я могу сделать код для извлечения изображений для различных изображений. Еще раз спасибо
@Override
public void onClick(View v) {
switch (v.getId()) {
case btn_applAdharFrontUploadId:
pickImage(1);
break;
case btn_applAdharBackUploadId:
pickImage(2);
break;
}
}
Здесь я могу использовать тот же код, чтобы сжать мои изображения и загрузить их в imageViews
private void pickImage(int i) {
Intent pickImageIntent = new Intent(Intent.ACTION_GET_CONTENT);
pickImageIntent.setType("image/*");
startActivityForResult(Intent.createChooser(pickImageIntent, "Select Picture"), i);
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
assert data != null;
Uri imageUri = data.getData();
InputStream is = null;
try {
assert imageUri != null;
is = getContentResolver().openInputStream(imageUri);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
assert is != null;
BufferedInputStream bufferedInputStream = new BufferedInputStream(is);
Bitmap bitmap = BitmapFactory.decodeStream(bufferedInputStream);
ByteArrayOutputStream out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.WEBP, 60, out);
Bitmap decodedImage = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()));
switch (requestCode){
case 1:
iv_ApplAdharFront.setImageBitmap(decodedImage);
break;
case 2:
iv_ApplAdharBack.setImageBitmap(decodedImage);
break;