Как реализовать захват изображения с камеры, как взять изображение из галереи в Android? - PullRequest
0 голосов
/ 03 декабря 2011

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

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

Так как реализовать такую ​​технику ?? Или есть какая-нибудь демонстрация, которая берет захваченное изображение с камеры Android и возвращается к исходной активности с этим захваченным изображением ???

Спасибо.

1 Ответ

3 голосов
/ 03 декабря 2011

Это то, что вы ищете?(Как я понимаю ваш вопрос)

In Manafiest.xml

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

В вашей деятельности

private static final int TAKE_PHOTO_CODE = 1;

private void takePhoto(){
  final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(getTempFile(this)) ); 
  startActivityForResult(intent, TAKE_PHOTO_CODE);
}

private File getTempFile(Context context){
  //it will return /sdcard/image.tmp
  final File path = new File( Environment.getExternalStorageDirectory(), context.getPackageName() );
  if(!path.exists()){
    path.mkdir();
  }
  return new File(path, "image.tmp");
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (resultCode == RESULT_OK) {
    switch(requestCode){
      case TAKE_PHOTO_CODE:
        final File file = getTempFile(this);
        try {
          Bitmap captureBmp = Media.getBitmap(getContentResolver(), Uri.fromFile(file) );
          // do whatever you want with the bitmap (Resize, Rename, Add To Gallery, etc)
        } catch (FileNotFoundException e) {
          e.printStackTrace();
        } catch (IOException e) {
          e.printStackTrace();
        }
      break;
    }
  }
}
...