Android - Как создать селектор изображений - PullRequest
0 голосов
/ 26 января 2012

В моем приложении мне нужно использовать что-то, что позволит пользователю выбрать изображение с устройства.
Как это сделать простым способом?

Помня, что я буду использовать это изображение после выбора.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 26 января 2012

Вы можете попробовать следующее, что открывает галерею и позволяет пользователю выбрать изображение.

Intent i = new Intent(Intent.ACTION_PICK,  
     android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, ACTIVITY_SELECT_IMAGE);

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

switch(requestCode) { 
case REQ_CODE_PICK_IMAGE:
    if(resultCode == RESULT_OK){  
        Uri selectedImage = imageReturnedIntent.getData();
        String[] filePathColumn = {MediaStore.Images.Media.DATA};

        Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String filePath = cursor.getString(columnIndex);
        cursor.close();


        Bitmap selectedImage = BitmapFactory.decodeFile(filePath);
    }
}

}

'selectedImage' - это выбранное изображение, поэтому вы можете использовать его в остальной части вашего приложения сейчас.

1 голос
/ 26 января 2012

используйте этот код для выбора изображения в Галерее

galleryPic.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            Util.DogDye = false;
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);

            startActivityForResult(
                    Intent.createChooser(intent, "Complete action using"),
                    1);

        }
    });

и после этого добавьте один новый метод

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // if (resultCode != RESULT_OK) return;

    switch (requestCode) {

    case 1:
        if (data != null) {
            selectedImageUri = data.getData();
            String selectedImagePath = getPath(path);
BitmapFactory.Options options = new BitmapFactory.Options();
                options.inJustDecodeBounds = true;
Bitmap btemp = BitmapFactory.decodeFile(selectedImagePath,
                        options);
          /// use btemp Image file 

        }
        break;
    }

}


   public String getPath(Uri uri) {
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    int column_index = cursor
            .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
...