Сделайте снимок, затем отредактируйте сохраненную проблему с изображением!

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


person Adam    schedule 01.03.2011    source источник


Ответы (1)


Адам,

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

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;
        }
    }
}

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

person Will Tate    schedule 01.03.2011
comment
@willytate Я очень ценю помощь, я думаю, я просто не понимаю ее .. когда я ввожу эту кодировку, я получаю всевозможные ошибки, которые не устраняются импортом, и когда я думаю, что я это исправил; Я запускаю его через отладку USB на своем телефоне, и как только я нажимаю кнопку, чтобы начать действие, я продолжаю получать неожиданную ошибку, программа остановилась, попробуйте еще раз. - person Adam; 01.03.2011
comment
Не могли бы вы отредактировать исходный вопрос, чтобы добавить свой код? Возможно, таким образом я смогу лучше помочь. - person Will Tate; 01.03.2011
comment
@willytate Я бы не хотел, просто из-за боязни выглядеть идиотом .. Вот что я пытаюсь сделать в терминах leimens. Нажмите кнопку в файле mymenu.xml, который затем отправляет вас к камере, где вы делаете снимок, у вас есть выбор: использовать снимок или сделать его повторно .... затем, как только вы выберете его, я хочу, чтобы это изображение было поднято на следующий экран, где его можно отредактировать... Как я уже сказал, я действительно новичок в этом, поэтому, возможно, я просто не уверен, куда идти. Если бы вы могли объяснить, в чем, по вашему мнению, моя проблема, я был бы более чем готов обменять мои графические таланты на вас, если нужно... Еще раз спасибо - person Adam; 02.03.2011
comment
Если вы поместите вызов imageFromCamera() в свой onClickListener() для своей кнопки, то код, который я разместил, должен все это. Я прокомментировал, где вам нужно запустить редактирование изображения Activity. К сожалению, если вы не публикуете код или сообщения об ошибках, я больше ничем не могу помочь :-\. Я бы НЕ публиковал, чтобы не выглядеть идиотом, мы все когда-то были новичками. - person Will Tate; 02.03.2011
comment
проблема, с которой я сталкиваюсь, заключается в том, что... Метод onActivityResult (int, int, Intent) не определен для типа Object - person Adam; 02.03.2011
comment
@willytate Думаю, я не уверен, куда поместить действие редактирования изображения и какие параметры использовать. - person Adam; 02.03.2011
comment
Адам, я добавил код для запуска вашей активности ImageEdit, предполагая, что класс называется ImageEdit - person Will Tate; 02.03.2011