Инициировать намерение камеры с помощью значка галереи - PullRequest
3 голосов
/ 19 января 2012

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

mCameraButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mCameraUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new ContentValues());
            Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mCameraUri);
            mtimeCameraAcessed = System.currentTimeMillis();
            startActivityForResult(cameraIntent, RECEIVE_CAMERA_PICTURE);
            overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);

        }

});

Но я заметил несоответствие.Когда мое приложение обращается к камере, значок галереи в нижней части экрана, кажется, отсутствует (значок появляется при доступе к приложению камеры на любом телефоне Android).Я приложил пару скриншотов, чтобы проиллюстрировать это.

Я хочу, чтобы пользователь имел доступ к камере, но при этом мог передумать, а затем получить доступ к галерее на том же экране (нажав значок галереи) .Теперь я знаю, как инициировать намерение галереи через 'Intent.ACTION_PICK'.Я также рассмотрел этот вопрос, но я не совсем согласен с тем, что мне нужен собственный макет камеры для достижения того, что я намерен делать: Единственное намерение, чтобы пользователь мог сделать снимок ИЛИ выбрать изображение из галереи в Android

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

camera with gallery icon

camera without gallery icon

1 Ответ

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

Пройдя некоторое тщательное исследование, я пришел к выводу, что это невозможно на самом деле. Тем не менее, пользовательский макет в сочетании с API камеры будет идеальным решением, если что-то вроде этого желательно. Но потом я заметил, что использование api камеры имеет определенные проблемы, такие как перекос экрана камеры.

QuickPic выводит пользователя на экран камеры (со значком галереи), но при этом выкидывает его из приложения. В этот момент пользователь в основном использует стандартное приложение камеры на Android, а не само приложение Quickpic.

...