Как загрузить изображение из галереи в Android - PullRequest
15 голосов
/ 02 февраля 2012

Я хочу загрузить изображение из моей телефонной галереи в свое приложение. В моем приложении есть кнопка с именем upload.когда я нажимаю кнопку, она должна перейти в галерею и в галерею, если я выбираю изображение, которое выбранное изображение должно отображать в виде эскиза в приложении. Я хочу загрузить 10 изображений из галереи в моем приложении.

Ответы [ 3 ]

19 голосов
/ 02 февраля 2012

При нажатии кнопки галереи запустите startActivityForResult следующим образом:

startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), GET_FROM_GALLERY);

Следовательно, определите GET_FROM_GALLERY (который является статическим int, любой номер запроса на ваш выбор, например, public static final int GET_FROM_GALLERY = 3;) внутри onActivityResult.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);


    //Detects request codes
    if(requestCode==GET_FROM_GALLERY && resultCode == Activity.RESULT_OK) {
        Uri selectedImage = data.getData();
        Bitmap bitmap = null;
        try {
                bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
        } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }
    }
}
7 голосов
/ 02 февраля 2012

Для просмотра галереи:

Intent intent = new Intent();
  intent.setType("image/*");
  intent.setAction(Intent.ACTION_GET_CONTENT);
  startActivityForResult(Intent.createChooser(intent, "Select Picture"),REQUEST_CODE);

и использования в вашем приложении:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  try {
   switch (requestCode) {

   case REQUEST_CODE:
    if (resultCode == Activity.RESULT_OK) {
     //data gives you the image uri. Try to convert that to bitmap
     break;
    } else if (resultCode == Activity.RESULT_CANCELED) {
     Log.e(TAG, "Selecting picture cancelled");
    }
    break;
   }
  } catch (Exception e) {
   Log.e(TAG, "Exception in onActivityResult : " + e.getMessage());
  }
 }
4 голосов
/ 20 июля 2016

Это путь:

startActivityForResult(
  new Intent(
    Intent.ACTION_PICK,
    android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI
  ),
  GET_FROM_GALLERY
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...