如题,请问如何在调用camera的时候,自动对焦,谢谢大家指点下.
解决方案 »
- 求问,我想android开机不启动自带的界面,启动自己做的应用程序,该怎么做?
- audioRecord.read().read 出来的buffer内容始终为0
- 限制地图显示的范围,超过范围不能显示,那位知道?
- Oracle VM VirtualBox 安装android-x86-2.2出错
- 如何实现两个Activity类之间的跳转??????????????
- 联系人数据库问题
- listAdapter错误
- Flash类手机应用市场人气仅占娱乐类一成
- 今天碰到一个新问题,求教各位大虾:
- android开发
- android中播放视频 使用getNativeSurface FindClass 出错
- 关于launcher桌面程序的奇怪问题
http://dev.10086.cn/cmdn/wiki/index.php?doc-view-3630.html
自动对焦回调函数mAutoFocusCallBack Java代码 01.private AutoFocusCallback mAutoFocusCallBack = new AutoFocusCallback() {
02.
03. @Override
04. public void onAutoFocus(boolean success, Camera camera) {
05.
06. if (success) {
07.
08. mInProgress = true;
09.
10. // set parameters of camera
11. Camera.Parameters Parameters = mCamera.getParameters();
12. Parameters.setPreviewSize(IMG_PREVIEW_WIDTH, IMG_PREVIEW_HEIGHT);
13. Parameters.setPictureSize(IMG_WIDTH, IMG_HEIGHT);
14. mCamera.setParameters(Parameters);
15.
16. mCamera.takePicture(mShutterListener, null, mImageCaptureCallback);
17. }
18. }
19.};
设置Camera.Parameters好像有些问题,如果设置了相机(或者是SDK)不支持的分辨率就会报错,估计要添加判断。
目前的设置为 Java代码 01.private static int IMG_PREVIEW_WIDTH = 480;
02.private static int IMG_PREVIEW_HEIGHT = 320;
03.private static int IMG_WIDTH = 1280;
04.private static int IMG_HEIGHT = 960;
监听事件mShutterListener Java代码 01.private Camera.ShutterCallback mShutterListener = new Camera.ShutterCallback() {
02. public void onShutter() {
03. }
04.};
拍照回调函数mImageCaptureCallback
这里使用了线程,因为考虑到保存图片时一般都会显示一个progress dialog,如果不用线程的话,dialog画面会定在那里,无法起到预期的效果。
当然不用线程也不会有错,适当修改一下就可以了。 Java代码 01.private PictureCallback mImageCaptureCallback = new PictureCallback() {
02.
03. @Override
04. public void onPictureTaken(final byte[] data, Camera camera) {
05.
06. new Thread(new Runnable() {
07.
08. @Override
09. public void run() {
10.
11. // get path to save image file
12. String filePath = "/sdcard/DCIM/Camera";
13.
14. // generate file name
15. String name = "mytest.jpg";
16. String fileName = filePath + name;
17.
18. FileOutputStream fos = null;
19. try {
20. // saving file
21. fos = new FileOutputStream(fileName);
22. fos.write(data);
23. fos.close();
24.
25. } catch (Exception e) {
26.
27. // close file if error
28. if (fos != null) {
29. try {
30. fos.close();
31. } catch (IOException e1) {
32. e1.printStackTrace();
33. }
34. try {
35. throw e;
36. } catch (Exception e1) {
37. e1.printStackTrace();
38. }
39. }
40. // close scene
41. finish();
42. }
43. }
44. }).start();
45. }
46.};
最后提醒一下,别忘记在AndroidManifest.xml里增加 Java代码 01.<uses-permission Android:name="android.permission.CAMERA" />
mCamera = Camera.open();这样?
我拿真机试程序总是崩掉
不需要什么预览,存储图片什么的,就仅仅跳转到系统自带的拍照界面去
Intent intent = new Intent(); //调用照相机
intent.setAction("android.media.action.STILL_IMAGE_CAMERA");
startActivity(intent);
Camera.getParameters().isZoomSupported() -->true
Camera.getParameters().isSmoothZoomSupported() -->false这种情况下,我怎么才能实现变焦呢??
两种思路都可以啦,我的实现在这里:http://blog.csdn.net/yanzi1225627/article/details/7926994