代码之家  ›  专栏  ›  技术社区  ›  greenie

按按钮拍摄并保存图片

  •  10
  • greenie  · 技术社区  · 15 年前

    我正在创建一个Android应用程序,它使用用户捕获的图像作为更大过程的一部分。到目前为止,我的XML布局在RelativeLayout中有一个SurfaceView和按钮。我已经设法让相机预览显示在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,告诉用户他们的图像已保存。

    感谢您的帮助:)

    2 回复  |  直到 13 年前
        1
  •  12
  •   Mikael Ohlson    15 年前

    我认为Commonware确实已经回答了这个问题的大部分,但这可能适用于自动对焦和快门声音。这是一个猜测,因为我不在一台可以编译/测试任何这些内容的机器上。

    在你的按键处理代码中,我相信你应该打电话(可能是通过消息传递)

    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 与Commonware的示例相同。

    你到底是在干什么?

    哦,别忘了加上 <uses-feature> 标签 android.hardware.camera.autofocus . :)

        2
  •  9
  •   CommonsWare    15 年前

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