按下按钮并保存图片

时间:2010-04-26 11:52:35

标签: android camera

我正在创建一个Android应用程序,它使用用户捕获的图像作为更大进程的一部分。到目前为止,我的XML布局在RelativeLayout中有一个SurfaceView和Button。我已经成功地将相机预览显示在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,然后弹出Toast告诉用户他们的图像已保存。< / p>

非常感谢任何帮助:)

2 个答案:

答案 0 :(得分:12)

我认为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。 :)

答案 1 :(得分:9)

Here is a sample application处理拍照和保存它的部分。自动对焦,点击,Toast以及保存到应用程序本地文件存储区与SD卡的保留作为学生的练习。 : - )