Управление камерой внутри приложения Android - PullRequest
3 голосов
/ 23 июня 2011

Я создаю приложение для Android 2.2, основанное на библиотеке фотографий.Существует возможность сделать снимок с камеры и использовать его в приложении.Я ожидаю:

  1. Чтобы включить камеру из приложения.

  2. Чтобы сделать снимок.

  3. Чтобы автоматически закрыть камеру и показать захваченное изображение внутри приложения

К сожалению, я не могу получить захваченное изображение в приложение.После того, как фотография сделана, камера не закрывается автоматически или не возвращается в приложение.Теперь мне нужно нажать кнопку «Назад», чтобы зайти в приложение и выбрать картинку, выбрать вручную с SD-карты.Камера открывается через намерение, и я использую следующий класс.

http://developer.android.com/reference/android/hardware/Camera.html

Ответы [ 3 ]

4 голосов
/ 28 июня 2011

Вам нужно сделать две вещи. Запустите приложение «Камера» и скажите, где хранить снимок, который он делает:

File photo = new File(Environment.getExternalStorageDirectory(),  "myFile.jpg");
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
startActivityForResult(intent, myRequestCode);

Когда пользователь закрывает приложение «Камера», ваше приложение и действие будут возобновлены. Поэтому вы должны переопределить onActivityResult , чтобы получить результат:

if (resultCode == myRequestCode){
  File photo = new File(Environment.getExternalStorageDirectory(), "myFile.jpg");
  // open it, show it, insert into MediaStore whatever
}

Если вы не предоставите место для сохранения, вы также можете получить его, используя intent.getData или intent.getParcelableExtra , используя Intent.EXTRA_STREAM .

2 голосов
/ 29 июня 2011

michaelg ответы на месте.

Только вы должны учитывать устройства с ошибкой захвата изображения.

Читайте об этом здесь:

Android ACTION_IMAGE_CAPTURE Намерение

2 голосов
/ 27 июня 2011

Полагаю ... вы делаете аналогичный приведенному ниже коду

Intent cameraIntent = new Intent (android.provider.MediaStore.ACTION_IMAGE_CAPTURE);// запросим код

        startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

, используя startActivityForResult вместо startActivity .. всякий раз, когда вы закончите с вашей камерой .. нажмите ok .. и вы вернетесь к своей активности .. затем в вашей активности обратный вызов onActivityResultназываться.Здесь вы получите данные для кликнувшего изображения.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...