Я очень новичок в программировании и пытаюсь сделать приложение, используя аппаратное обеспечение встроенных камер, моя цель - сделать снимок; затем, когда вы нажимаете «Сохранить», это изображение отображается в новом действии для редактирования ... Я пару дней искал, как лучше всего использовать аппаратное обеспечение камеры ... Мне сказали, что startActivity(new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE));
следует инициализировать камеру проще всего ... Я заставил камеру инициировать и даже сохранить изображение, но моя проблема заключается в том; как только я нажимаю «Сохранить» на камере, действие камеры перезагружается вместо того, чтобы переносить сохраненное изображение в новое действие, где его можно редактировать ... Я знаю, что могу показаться полным нубом, и это так, но если кто-нибудь понимает это и может помогите буду очень признателен.
Сделайте снимок, затем отредактируйте сохраненную проблему с изображением!
Ответы (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
@willytate Я очень ценю помощь, я думаю, я просто не понимаю ее .. когда я ввожу эту кодировку, я получаю всевозможные ошибки, которые не устраняются импортом, и когда я думаю, что я это исправил; Я запускаю его через отладку USB на своем телефоне, и как только я нажимаю кнопку, чтобы начать действие, я продолжаю получать неожиданную ошибку, программа остановилась, попробуйте еще раз.
- person Adam; 01.03.2011
Не могли бы вы отредактировать исходный вопрос, чтобы добавить свой код? Возможно, таким образом я смогу лучше помочь.
- person Will Tate; 01.03.2011
@willytate Я бы не хотел, просто из-за боязни выглядеть идиотом .. Вот что я пытаюсь сделать в терминах leimens. Нажмите кнопку в файле mymenu.xml, который затем отправляет вас к камере, где вы делаете снимок, у вас есть выбор: использовать снимок или сделать его повторно .... затем, как только вы выберете его, я хочу, чтобы это изображение было поднято на следующий экран, где его можно отредактировать... Как я уже сказал, я действительно новичок в этом, поэтому, возможно, я просто не уверен, куда идти. Если бы вы могли объяснить, в чем, по вашему мнению, моя проблема, я был бы более чем готов обменять мои графические таланты на вас, если нужно... Еще раз спасибо
- person Adam; 02.03.2011
Если вы поместите вызов
imageFromCamera()
в свой onClickListener()
для своей кнопки, то код, который я разместил, должен все это. Я прокомментировал, где вам нужно запустить редактирование изображения Activity
. К сожалению, если вы не публикуете код или сообщения об ошибках, я больше ничем не могу помочь :-\. Я бы НЕ публиковал, чтобы не выглядеть идиотом, мы все когда-то были новичками.
- person Will Tate; 02.03.2011
проблема, с которой я сталкиваюсь, заключается в том, что... Метод onActivityResult (int, int, Intent) не определен для типа Object
- person Adam; 02.03.2011
@willytate Думаю, я не уверен, куда поместить действие редактирования изображения и какие параметры использовать.
- person Adam; 02.03.2011
Адам, я добавил код для запуска вашей активности
ImageEdit
, предполагая, что класс называется ImageEdit
- person Will Tate; 02.03.2011