为什么把自动聚焦放在前面呢?因为前文http://blog.youkuaiyun.com/yanzi1225627/article/details/7738736已经实现了拍照功能,且网上拍照的源码例子很多,自动聚焦很多人写的很简单,但结果发现不中。我这里就总结下,我的自动聚焦的实现。
手机华为U9200,
android4.0.3,
预览的参数:myParameters.setPreviewSize(1280, 720)
图片参数:myParameters.setPictureSize(2048, 1152); //1280, 720
图片最终尺寸:宽600 * 高800
(关于setPreviewSize和setPictureSize的问题可以参照我以前的文章http://blog.youkuaiyun.com/yanzi1225627/article/details/7738736)
参照http://www.cnblogs.com/liuan/archive/2012/01/10/2318300.html,上面的思路是弄了一个定时器来进行自动聚焦,但发现根本不中,一按拍照程序就挂掉。而且由于定时器一直在重复循环,相机就在那聚焦来聚焦去,也就是一下清晰一下又模糊了。后来我把程序改成,当拍照后把定时器关闭掉发现还是不中。经反复实验,终于成功。南无阿弥陀佛,本着我为人人,人人为我。将源码贴在此处:
第一,布局文件。里面有一个surfaceview和三个按钮,分别是预览、拍照、保存。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" ><SurfaceView android:id="@+id/mySurfaceView" android:layout_width="fill_parent" android:background="#D1EEEE" android:layout_height="800px" android:gravity="center" /><LinearLayout android:id="@+id/LinearLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:paddingTop="20dip" android:orientation="horizontal" > <Button android:id="@+id/btnPreview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="预览" /> <Button android:id="@+id/btnPhoto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="拍照" /> <Button android:id="&#