Я создаю приложение Android, которое использует полученные изображения пользователя в качестве части большего процесса. До сих пор мое расположение XML имеет SurfaceView и Кнопку в RelativeLayout. Мне удалось заставить предварительный просмотр камеры показывать на SurfaceView, но я застреваю о том, как сделать снимок и сохранить его, когда пользователь нажимает кнопку.
Мой файл класса смотрит что-то как демонстрация CameraPreview API: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html
Идеально, когда кнопка, это нажало камеру, должна автофокус, сделать снимок (со звуком clicky), сохранить его к /data/data/app_package_structure/files/file_name.jpg
, затем всплывающее окно Тост, чтобы сказать пользователю их изображение было сохранено.
Любая справка очень ценится :)
Думаю, 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.
Что именно вы застряли?
Да, и не забудьте добавить тег
android.hardware.camera.autofocus
. :)
Вот пример приложения , которое обрабатывает часть «сделай снимок и сохрани его». Автофокус, щелчок, Тост
и сохранение в локальном хранилище файлов приложения по сравнению с SD-картой оставлены в качестве упражнений для учащихся. : -)