Возьмите и сохраните изображение при нажатии кнопки - PullRequest
10 голосов
/ 26 апреля 2010

Я создаю приложение для Android, которое использует захваченные пользователем изображения как часть более крупного процесса. До сих пор у моего XML-макета есть SurfaceView и Button внутри RelativeLayout. Мне удалось показать предварительный просмотр камеры на SurfaceView, но я застрял на том, как сделать снимок и сохранить его, когда пользователь нажимает кнопку.

Мой файл класса выглядит примерно как демонстрация API CameraPreview: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html

В идеале, когда кнопка, которую она нажала, камера должна автоматически сфокусироваться, сделать снимок (со щелкающим звуком), сохранить его в /data/data/app_package_structure/files/file_name.jpg, а затем всплыть тост, чтобы сообщить пользователю, что его изображение было сохранено.

Любая помощь очень ценится:)

Ответы [ 2 ]

12 голосов
/ 04 мая 2010

Я думаю, что 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. :)

9 голосов
/ 26 апреля 2010

Вот пример приложения , которое обрабатывает часть «сделай снимок и сохрани». Автофокус, щелчок, Toast и сохранение в локальном файловом хранилище приложения по сравнению с SD-картой остаются в качестве упражнений для ученика. : -)

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