我正在创建一个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>
非常感谢任何帮助:)
答案 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卡的保留作为学生的练习。 : - )