Сделайте снимок, затем отредактируйте сохраненную картинку! - PullRequest
2 голосов
/ 01 марта 2011

Я очень новичок в программировании и пытаюсь создать приложение, использующее аппаратную часть встроенных камер, я собираюсь сделать снимок;затем, когда вы нажимаете «Сохранить», изображение появляется в новом действии, которое нужно отредактировать ... Я искал пару дней, как наилучшим образом использовать оборудование камеры ... Мне сказали startActivity(new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE));, что следует инициализировать камерусамое простое ... Я получил камеру, чтобы инициировать и даже сохранить изображение, но моя проблема заключается в;как только я нажимаю на камере кнопку «Сохранить», действие камеры перезагружается, вместо того, чтобы выводить сохраненное изображение в новое действие, где его можно редактировать ... Я знаю, что это может звучать как полный нуб, и я согласен, но если кто-то это поймет и сможетпомощь, я был бы так благодарен.

1 Ответ

4 голосов
/ 01 марта 2011

Адам,

В моем приложении я использую следующий код для запуска камеры:

public void imageFromCamera() {
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    mImageFile = new File(Environment.getExternalStorageDirectory()+File.separator+"MyApp",  
            "PIC"+System.currentTimeMillis()+".jpg");
    mSelectedImagePath = mImageFile.getAbsolutePath();
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mImageFile));
    startActivityForResult(intent, TAKE_PICTURE);
}

Это сохранит изображение по пути mSelectedImagePath, равному /sdcard/MyApp/<systemtime>.jpg.

Затем вы фиксируете возвращение IMAGE_CAPTURE намерения в onActivityResult и запускаете свою деятельность по редактированию изображения оттуда!

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        switch(requestCode) {
        case TAKE_PICTURE:
                    //Launch ImageEdit Activity
            Intent i = new Intent(this, ImageEdit.class);
                    i.putString("imgPath", "mSelectedImagePath");
                    startActivity(i);
            break;
        }
    }
}

Надеюсь, это поможет!

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