Android открыть фотографии из папки камеры - PullRequest
1 голос
/ 06 марта 2012

Мне нужно, чтобы мое приложение открыло несколько изображений.Мне нужно разрешить пользователю выбирать из картинок, которые он заправляет, и использовать в моем приложении.У меня есть 2 вопроса:

  1. Как получить папку, в которой камера сохраняет изображения?
  2. Существует какой-либо элемент управления, который позволяет мне выбирать несколько файлов (что-то вроде диалога OpenFile в winformв .Net)?

1 Ответ

2 голосов
/ 06 марта 2012

Этот код запустит системную активность или любое зарегистрированное приложение, используя действие намерения, и позволит вам выбрать изображение из галереи (альбомы, фотографии с камеры и т. Д.)

....
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, CHOOSE_FILE_RESULT_CODE);
.....



public void onActivityResult(int requestCode, int resultCode, Intent data) {
        // User has picked an image. 
        Uri uri = data.getData();
        //File URI.. 

    }

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

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String[] projection = {
                MediaStore.Images.Media._ID, MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
                MediaStore.Images.Media.DISPLAY_NAME
        };
        String selection = MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " = ?";
        String[] selectionArgs = new String[] {
            "Camera"
        };
        Cursor mImageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                projection, selection, selectionArgs, null);

        while (mImageCursor.moveToNext()) {
            Log.d("TestActivity", mImageCursor.getString(1) + "    " + mImageCursor.getString(2));

        }
    }
...