Возьмите и сохраните изображение при нажатии кнопки
Я создаю приложение для Android, которое использует захваченные пользователем изображения как часть более крупного процесса. Пока мой XML-макет имеет SurfaceView и Button внутри RelativeLayout. Мне удалось получить предварительный просмотр камеры на SurfaceView, но я застрял на том, как сделать снимок и сохранить его, когда пользователь нажимает кнопку.
Мой файл класса выглядит примерно как демонстрационная версия CameraPreview API:
http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html
В идеале, когда нажата кнопка, камера должна автофокусироваться, щелкнуть снимок (с помощью щекотливого звука), сохранить его до /data/data/app_package_structure/files/file_name.jpg
, а затем вскрыть тост, чтобы сообщить пользователю, что их изображение сохранено.
Любая помощь очень ценится:)
Ответы
Ответ 1
Я думаю, что CommonsWare уже ответила на большинство этого вопроса, но это может сработать для автоматической фокусировки и звука затвора. Это предположение, так как я не на машине, где я могу скомпилировать/протестировать все это.
В вашем коде управления нажатием кнопки, я считаю, вы должны позвонить (возможно, путем передачи сообщений)
camera.autoFocus(new Camera.AutoFocusCallback() {
Camera.ShutterCallback shutterCallback = new Camera.ShutterCallback() {
public void onShutter() {
// Play your sound here.
}
};
public void onAutoFocus(boolean success, Camera camera) {
camera.takePicture(shutterCallback, null, photoCallback);
}
});
где camera
- ваш объект камеры, а photoCallback
совпадает с примером CommonsWare.
Что именно вы застряли?
О, и не забудьте добавить тег <uses-feature>
android.hardware.camera.autofocus
.:)
Ответ 2
Вот пример приложения, в котором обрабатывается часть "Take-a-picture-and-save-it". Автофокусировка, щелчок, Toast
и сохранение в локальном хранилище файлов файлов и SD-карта остаются в качестве упражнений для ученика.: -)