如何实现android 摄像头手机摄像头的的自动对焦

Android自动聚焦、摄像头拍照、缩放至标准大小的完整实现
第一,布局文件。里面有一个surfaceview和三个按钮,分别是预览、拍照、保存。
&?xml version=&1.0& encoding=&utf-8&?&&
&LinearLayout xmlns:android=&/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=&@+id/btnSave&&
&&&&&&& android:layout_width=&wrap_content&&
&&&&&&& android:layout_height=&wrap_content&&
&&&&&&& android:text=&保存& /&&
&/LinearLayout&&
&/LinearLayout&&
第2,源程序:
package yan.guoqi.&
import java.io.BufferedOutputS&
import java.io.F&
import java.io.FileOutputS&
import java.io.IOE&
import java.util.T&
import java.util.TimerT&
import android.app.A&
import android.app.AlertD&
import android.app.AlertDialog.B&
import android.content.DialogI&
import android.graphics.B&
import android.graphics.BitmapF&
import android.graphics.PixelF&
import android.hardware.C&
import android.hardware.Camera.PictureC&
import android.hardware.Camera.ShutterC&
import android.os.B&
import android.util.L&
import android.view.SurfaceH&
import android.view.SurfaceV&
import android.view.V&
import android.view.View.OnClickL&
import android.view.W&
import android.view.WindowM&
import android.widget.B&
import android.widget.T&
public class TestPhotoActivity extends Activity implements SurfaceHolder.Callback{&
&&& /** Called when the activity is first created. */&
&&& private static final& String TAG = &yan:&;&
&&& SurfaceView mySurfaceView =&
&&& SurfaceHolder mySurfaceHolder =&
&&& Button btnPreview =&
&&& Button btnPhoto =&
&&& Button btnSave =&
&&& Camera myCamera =&
&&& Camera.Parameters myP&
&&& boolean isView =&
&&& String savePath = &/mnt/sdcard/testPhoto/&;&
&&& int cntSave = 0;&
&&& private Camera.AutoFocusCallback mAutoFocusC&
&&& //private Camera.PreviewCallback mPreviewC&
&&& private Timer mT&
&&& private TimerTask mTimerT&
&&& @Override&
&&& public void onCreate(Bundle savedInstanceState) {&
&&&&&&& super.onCreate(savedInstanceState);&
&&&&&&& //璁剧疆ㄥ棰?&&&&&& requestWindowFeature(Window.FEATURE_NO_TITLE);&
&&&&&&& int flag = WindowManager.LayoutParams.FLAG_FULLSCREEN;&
&&&&&&& Window myWindow = this.getWindow();&
&&&&&&& myWindow.setFlags(flag, flag);&
&&&&&&& setContentView(R.layout.main); //璁剧疆甯灞&
&&&&&&& mySurfaceView = (SurfaceView)findViewById(R.id.mySurfaceView);&
&&&&&&& mySurfaceView.setZOrderOnTop(true);&
&&&&&&& mySurfaceHolder = mySurfaceView.getHolder();&
&&&&&&& mySurfaceHolder.setFormat(PixelFormat.TRANSLUCENT);&
&&&&&&& btnPreview = (Button)findViewById(R.id.btnPreview);&
&&&&&&& btnPhoto = (Button)findViewById(R.id.btnPhoto);&
&&&&&&& btnSave = (Button)findViewById(R.id.btnSave);&
&&&&&&& if(!isFolderExist(savePath)) //濡寤烘浠跺す澶辫?&&&&&& {&
&&&&&&&&&&& AlertDialog.Builder alertDialog = new Builder(TestPhotoActivity.this);&
&&&&&&&&&&& alertDialog.setTitle(&璇&);&
&&&&&&&&&&& alertDialog.setMessage(&剧淇瀛浠跺す寤哄け璐ワ&);&
&&&&&&&&&&& alertDialog.setPositiveButton(&纭&, new DialogInterface.OnClickListener() {&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& public void onClick(DialogInterface dialog, int which) {&
&&&&&&&&&&&&&&&&&&& // TODO Auto-generated method stub&
&&&&&&&&&&&&&&&&&&& dialog.dismiss();&
&&&&&&&&&&&&&&&&&&& TestPhotoActivity.this.finish();&
&&&&&&&&&&&&&&& }&
&&&&&&&&&&& });&
&&&&&&&&&&& alertDialog.show();&
&&&&&&& }&
&&&&&&& else&
&&&&&&&&&&& Toast.makeText(TestPhotoActivity.this,&
&&&&&&&&&&&&&&&&&&& &ㄧх灏淇瀛? + savePath,&
&&&&&&&&&&&&&&&&&&& Toast.LENGTH_SHORT).show();&
&&&&&&& mySurfaceHolder.addCallback(this);&
&&&&&&& mySurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);&
&&&&&&& mAutoFocusCallback = new Camera.AutoFocusCallback() {&
&&&&&&&&&&&&&
&&&&&&&&&&& public void onAutoFocus(boolean success, Camera camera) {&
&&&&&&&&&&&&&&& // TODO Auto-generated method stub&
&&&&&&&&&&&&&&& if(success){&
&&&&&&&&&&&&&&&&&&& myCamera.setOneShotPreviewCallback(null);&
&&&&&&&&&&&&&&&&&&& Toast.makeText(TestPhotoActivity.this,&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &ㄨ锛?,&
&&&&&&&&&&&&&&&&&&&&&&&&&&& Toast.LENGTH_SHORT).show();&
&&&&&&&&&&&&&&& }&
&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&& }&
&&&&&&& };&&
&&&&&&& mTimer = new Timer();&
&&&&&&& mTimerTask = new CameraTimerTask();&
&&&&&&& //mTimer.schedule(mTimerTask, 0, 500);&
&&&&&&& btnPreview.setOnClickListener(new BtnListener());&
&&&&&&& btnPhoto.setOnClickListener(new BtnListener());&
&&&&&&& btnSave.setOnClickListener(new BtnListener());&
&&& ShutterCallback myShutterCallback = new ShutterCallback() {&
&&&&&&& public void onShutter() {&
&&&&&&&&&&& // TODO Auto-generated method stub&
&&&&&&&&&&&&&
&&&&&&& }&
&&& PictureCallback myRawCallback = new PictureCallback() {&
&&&&&&& public void onPictureTaken(byte[] data, Camera camera) {&
&&&&&&&&&&& // TODO Auto-generated method stub&
&&&&&&&&&&&&&
&&&&&&& }&
&&& PictureCallback myjpegCalback = new PictureCallback() {&
&&&&&&& public void onPictureTaken(byte[] data, Camera camera) {&
&&&&&&&&&&& // TODO Auto-generated method stub&
&&&&&&&&&&& Log.i(TAG, &onPictureTaken........&);&
&&&&&&&&&&& bm = BitmapFactory.decodeByteArray(data, 0, data.length);&
&&&&&&&&&&& isView =&
&&&&&&&&&&& myCamera.stopPreview();&
&&&&&&&&&&& myCamera.release();&
&&&&&&&&&&& myCamera =&
&&&&&&&&&&& isView =&
&&&&&&&&&&&&&
&&&&&&& }&
&&& class BtnListener implements OnClickListener{&
&&&&&&& public void onClick(View v) {&
&&&&&&&&&&& // TODO Auto-generated method stub&
&&&&&&&&&&& switch(v.getId()){&
&&&&&&&&&&& case R.id.btnPreview:&
&&&&&&&&&&&&&&& Toast.makeText(TestPhotoActivity.this,&
&&&&&&&&&&&&&&&&&&&&&&& &ㄦ浜棰瑙?,&
&&&&&&&&&&&&&&&&&&&&&&& Toast.LENGTH_SHORT).show();&
&&&&&&&&&&&&&&& initCamera();&
&&&&&&&&&&&&&&&&
&&&&&&&&&&& case R.id.btnPhoto:&
&&&&&&&&&&&&&&& if(isView && myCamera!=null){&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& myCamera.takePicture(myShutterCallback, myRawCallback, myjpegCalback);&
&&&&&&&&&&&&&&& }&
&&&&&&&&&&&&&&& else&
&&&&&&&&&&&&&&&&&&& Toast.makeText(TestPhotoActivity.this, &璇峰棰瑙跺э?, Toast.LENGTH_SHORT).show();&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&& case R.id.btnSave:&
&&&&&&&&&&&&&&&&& if(bm == null)&
&&&&&&&&&&&&&&&&& {&
&&&&&&&&&&&&&&&&&&&&& Toast.makeText(TestPhotoActivity.this, &璇锋淇瀛锛锛锛&, Toast.LENGTH_SHORT).show();&
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&& }&
&&&&&&&&&&&&&&& int b =0, c=1;&
&&&&&&&&&&&&&&& File fTest = new File(savePath + b + c + &.JPG&);&
&&&&&&&&&&&&&&& while(fTest.exists()){&
&&&&&&&&&&&&&&&&&&& if(c==9){&
&&&&&&&&&&&&&&&&&&&&&&& b++;&
&&&&&&&&&&&&&&&&&&&&&&& c = 0;&
&&&&&&&&&&&&&&&&&&& }&
&&&&&&&&&&&&&&&&&&& else&
&&&&&&&&&&&&&&&&&&&&&&& c++;&
&&&&&&&&&&&&&&&&&&& if(b==9){&
&&&&&&&&&&&&&&&&&&&&&&& b = 0;&
&&&&&&&&&&&&&&&&&&&&&&& Toast.makeText(TestPhotoActivity.this, &姝ゅ胯&锋扮凡瓒杩100锛?,&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Toast.LENGTH_SHORT).show();&
&&&&&&&&&&&&&&&&&&& }&
&&&&&&&&&&&&&&&&&&& fTest = new File(savePath + b + c + &.JPG&);&
&&&&&&&&&&&&&&& }&
&&&&&&&&&&&&&&& try {&
&&&&&&&&&&&&&&&&&&& FileOutputStream fout = new FileOutputStream(fTest);&
&&&&&&&&&&&&&&&&&&& BufferedOutputStream bos = new BufferedOutputStream(fout);&
&&&&&&&&&&&&&&&&&&& Bitmap mBitmap = Bitmap.createScaledBitmap(bm, 600, 800, false);&
&&&&&&&&&&&&&&&&&&& pressFormat.JPEG, 100, bos);&
&&&&&&&&&&&&&&&&&&& //bm.pressFormat.JPEG, 100, bos);&
&&&&&&&&&&&&&&&&&&& bos.flush();&
&&&&&&&&&&&&&&&&&&& bos.close();&
&&&&&&&&&&&&&&&&&&& cntSave++;&
&&&&&&&&&&&&&&&&&&& Toast.makeText(TestPhotoActivity.this, &ㄦ绗&+cntSave+&寮picture淇瀛锛缂锛&+ b + c,&
&&&&&&&&&&&&&&&&&&&&&&&&&&& Toast.LENGTH_SHORT).show();&
&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& }& catch (IOException e) {&
&&&&&&&&&&&&&&&&&&& // TODO Auto-generated catch block&
&&&&&&&&&&&&&&&&&&& e.printStackTrace();&
&&&&&&&&&&&&&&&&&&& Toast.makeText(TestPhotoActivity.this,&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &淇瀛澶辫触&,&
&&&&&&&&&&&&&&&&&&&&&&&&&&& Toast.LENGTH_SHORT).show();&
&&&&&&&&&&&&&&& }&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& default:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&& }&&&&&&&&&&&&
&&&&&&& }&&&&&&&&
&&& public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {&
&&&&&&& // TODO Auto-generated method stub&
&&& public void surfaceCreated(SurfaceHolder arg0) {&
&&&&&&& // TODO Auto-generated method stub&
&&& public void surfaceDestroyed(SurfaceHolder arg0) {&
&&&&&&& // TODO Auto-generated method stub&
&&& //濮ご&
&&& public void initCamera()&
&&&&&&& if(myCamera == null && !isView)&
&&&&&&& {&
&&&&&&&&&&& myCamera = Camera.open();&
&&&&&&&&&&& Log.i(TAG, &camera.open&);&
&&&&&&& }&
&&&&&&& if(myCamera != null && !isView) {&
&&&&&&&&&&& try {&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& myParameters = myCamera.getParameters();&
&&&&&&&&&&&&&&&&&&& myParameters.setPictureFormat(PixelFormat.JPEG);&
&&&&&&&&&&&&&&&&&&& myParameters.setPreviewSize();&
&&&&&&&&&&&&&&&&&&& //myParameters.setFocusMode(&auto&);&
&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& myParameters.setPictureSize(); //&
&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& myParameters.set(&rotation&, 90);&
&&&&&&&&&&&&&&&&&&& myCamera.setDisplayOrientation(90);&
&&&&&&&&&&&&&&&&&&& myCamera.setParameters(myParameters);&
&&&&&&&&&&&&&&&&&&& myCamera.setPreviewDisplay(mySurfaceHolder);&
&&&&&&&&&&&&&&&&&&& myCamera.startPreview();&
&&&&&&&&&&&&&&&&&&& isView =&
&&&&&&&&&&&&&&&&&&& myCamera.autoFocus(mAutoFocusCallback);&
&&&&&&&&&&&&&
&&&&&&&&&&& } catch (Exception e) {&
&&&&&&&&&&&&&&& // TODO: handle exception&
&&&&&&&&&&&&&&& e.printStackTrace();&
&&&&&&&&&&&&&&& Toast.makeText(TestPhotoActivity.this, &濮告洪璇?,&
&&&&&&&&&&&&&&&&&&&&&&& Toast.LENGTH_SHORT).show();&
&&&&&&&&&&& }&
&&&&&&& }&
&&& class CameraTimerTask extends TimerTask{&
&&&&&&& @Override&
&&&&&&& public void run() {&
&&&&&&&&&&& // TODO Auto-generated method stub&
&&&&&&&&&&& if(myCamera != null)&
&&&&&&&&&&& {&
&&&&&&&&&&&&&&& myCamera.autoFocus(mAutoFocusCallback);&
&&&&&&&&&&& }&
&&&&&&&&&&&&&
&&&&&&& }&
&&& //ゆ浠跺す濡涓瀛ㄥ寤轰&涓?&&&&&& public boolean isFolderExist(String folderPath){&
&&&&&&&&&&& boolean result =&
&&&&&&&&&&& File f = new File(folderPath);&
&&&&&&&&&&& if(!f.exists()){&
&&&&&&&&&&&&&&& if(f.mkdir()){&
&&&&&&&&&&&&&&&&&&& result =&
&&&&&&&&&&&&&&& }&
&&&&&&&&&&&&&&& else&
&&&&&&&&&&&&&&&&&&& result =&
&&&&&&&&&&& }&
&&&&&&&&&&& else&
&&&&&&&&&&&&&&& result =&
&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&& }&
自动聚焦部分,核心的代码有,构造函数里的
private Camera.AutoFocusCallback mAutoFocusC
mAutoFocusCallback = new Camera.AutoFocusCallback() {
&& public void onAutoFocus(boolean success, Camera camera) {
&&& // TODO Auto-generated method stub
&&& if(success){
&&&& myCamera.setOneShotPreviewCallback(null);
&&&&&&& Toast.makeText(TestPhotoActivity.this,
&&&&&&&&& &自动聚焦成功& , Toast.LENGTH_SHORT).show();
和initCamera里的myCamera.autoFocus(mAutoFocusCallback);调用!
第三,Manifest文件,红线部分是添加的对摄像头操作、sd存储的权限许可。
&?xml version=&1.0& encoding=&utf-8&?&
&manifest xmlns:android=&/apk/res/android&
&&& package=&yan.guoqi.testphoto&
&&& android:versionCode=&1&
&&& android:versionName=&1.0& &
&&& &uses-sdk android:minSdkVersion=&15& /&
&&& &!-- sd&腑寤哄ゆ浠剁 --&
&&& &uses-permission android:name=&android.permission.MOUNT_UNMOUNT_FILESYSTEMS& /&
&&& &!-- sd&腑ユ版?--&
&&& &uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE& /&
&&& &!-- 浣跨ㄦх?--&
&&& &uses-permission android:name=&android.permission.CAMERA& /&
&&& &uses-feature android:name=&android.hardware.camera& /&
&&& &application
&&&&&&& android:icon=&@drawable/ic_launcher&
&&&&&&& android:label=&@string/app_name& &
&&&&&&& &activity
&&&&&&&&&&& android:name=&.TestPhotoActivity&
&&&&&&&&&&& android:label=&@string/app_name& &
&&&&&&&&&&& &intent-filter&
&&&&&&&&&&&&&&& &action android:name=&android.intent.action.MAIN& /&
&&&&&&&&&&&&&&& &category android:name=&android.intent.category.LAUNCHER& /&
&&&&&&&&&&& &/intent-filter&
&&&&&&& &/activity&
&&& &/application&
&/manifest&
&& 上两张效果图,来看下摄像头相同的previewSize、pictureSize下,自动对焦前后的差别:
效果差别不是一般的大啊!
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。当前位置 & &
& 怎样才叫好?教你看懂手机摄像头的新技术
怎样才叫好?教你看懂手机摄像头的新技术
09:22:29&&出处:&&作者:
编辑:朝晖 &&)
让小伙伴们也看看:
文章观点支持
当前平均分:0(0 次打分)
[04-29][04-29][04-29][04-29][04-29][04-29][04-29][04-29][04-29][04-29]
登录驱动之家
没有帐号?
用合作网站帐户直接登录深度揭秘android摄像头的autoFocus-----循环自动聚焦的实现(Android Camera AutoFocus on Demand) - yanzi1225627的专栏
- 博客频道 - CSDN.NET
16805人阅读
&&&& & 要实现android摄像头的autoFocus,并不难,但要实现自动连续的自动聚焦就要费点劲。这里将我的研究思路和解决方法记录于此。实现自动聚焦,方法有如下:
第一:最常见的实现---利用按键或拍照前一次性自动聚焦
在Activity里申明变量private AutoFocusCallback myAutoFocusCallback =然后
//自动聚焦变量回调
&& &&& &myAutoFocusCallback = new AutoFocusCallback() {
&& &&& &&& &
&& &&& &&& &public void onAutoFocus(boolean success, Camera camera) {
&& &&& &&& &&& &// TODO Auto-generated method stub
&& &&& &&& &&& &if(success)//success表示对焦成功
&& &&& &&& &&& &{
&& &&& &&& &&& &&& &Log.i(tag, &myAutoFocusCallback: success...&);
&& &&& &&& &&& &&& &//myCamera.setOneShotPreviewCallback(null);
&& &&& &&& &&& &&& &
&& &&& &&& &&& &}
&& &&& &&& &&& &else
&& &&& &&& &&& &{
&& &&& &&& &&& &&& &//未对焦成功
&& &&& &&& &&& &&& &Log.i(tag, &myAutoFocusCallback: 失败了...&);
&& &&& &&& &&& &}
&& &&& &&& &&& &&& &
&& &&& &&& &&& &
&& &&& &&& &}
&& &&& &};
在Camera.startPreview()之后,拍照Camera.takePicture() 之前调用myCamera.autoFocus(myAutoFocusCallback)。
&&&&&& 第二:通过TimerTask设置一个定时器来循环,每隔一定时间调用myCamera.autoFocus(myAutoFocusCallback)一次。具体可以参考我之前的博客http://blog.csdn.net/yanzi1225627/article/details/7926994及/liuan/archive//2318300.html。
这种方法或许有效,但我没实验成功。见http://blog.csdn.net/yanzi1225627/article/details/7929953这里。用这种思路弄出来的结果是摄像头一直在自我聚焦,重复清晰--模糊----清晰---模糊的过程。
&&&&&& 第三:通过Handler和Thread,开启一个线程进行自动聚焦。本质和第二种是一样的。后续我会写一个demo发上来。
&&&&&& 第四:通过监听传感器来触发autoFocus。常用的是角度传感器或加速度传感器,当监听的值超过一定阈值时触发。这也是国外程序员们常用的思路。参见:/questions/5878042/android-camera-autofocus-on-demand&&
&&&&&& 第五:设置聚焦方式为myParam.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);参考这里
/questions/5856500/android-camera-continuous-focus可以看到官方的解释:
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1603691次
积分:20037
积分:20037
排名:第164名
原创:298篇
转载:12篇
评论:1932条
文章:15篇
阅读:171947
(1)(7)(2)(1)(1)(4)(1)(3)(17)(14)(7)(8)(7)(6)(3)(7)(7)(3)(3)(7)(5)(6)(11)(24)(6)(11)(10)(13)(11)(34)(39)(2)(23)(6)怎么样,是不是沉浸在几何射击地狱的炫酷空间里出不来了?多多磨练技术吧,少年。这周...
不管有意无意,苹果无时无刻都在向外界表达一种态度:用户隐私是至高无上的,是不容侵...
近段时间,关于 Galaxy Note 5 的相关传闻如雨后春笋般冒到网络上来,那我们就来扒一...
如果仅仅按市场份额来看 Android 无疑是一个十分成功的产品。但也有另一种观点认为 An...
6 月 3 日 Cydia 插件更新一览。
微软推出 WiFi 服务不忘 iOS 用户,毕竟这是微软跨平台策略的一部分。
三星这么热心的升级 Android 而放着自己的系统不管,有点奇怪呢。
苹果宣布召回Beats Pill XL音箱,你是用户之一吗?
《Pinpoint》全名《Pinpoint – Mark Up Screenshots》,是 iOS 上一款简便易用的截图...
《最后的谎言(Last Lie)》是由意大利开发商 ALESSANDRO MARTIRE 推出的第三人称射击...
获得 Apple Store 本周最佳的《Hyper Square(立方体)》是一款作风奇特的反应类益智...
《DropEraser》谈不上新作,但是却能勾起大家对年少时光的美好回忆。
随着网络科技的发展,智能移动设备的普及和网络速度的提升,移动互联网浪潮已经袭来,...
说到苹果商店当中的竞速游戏,相信不少玩家想到的一般都会是《真实赛车》或者《狂野飙...
你能想到在移动平台上玩篮球游戏总共有多少种形式吗,除了 2K 系列之外,我想最常见就...
如今手机已经占领世界,人们几乎每一刻都离不开手机,对于需要频繁使用手机的人来说,...
苹果估计会少赚 40 亿。
这两家公司的“麻烦事”,究竟何时才是个尽头。
《复仇者联盟2:奥创纪元》上映之后获得了不俗的票房成绩,这也使得越来越多的周边厂...
上周苹果公司推出了全新的iPhone基座产品,兼容性挺高的。
随着智能终端设备的全民性普及,移动电源作为辅助电子设备是现有解决续航能力的最佳方...
全新的 iPhone 基座,其实还是挺漂亮的。
别担心,就算没有 iOS 8 也是可以正常充电的,只是...
苹果5后置摄像头不能自动对焦 请问这是怎么回事
注册时间 最后登录
在线时间22 小时 UID
主题帖子人气
青苹果, 积分 141, 距离下一级还需 59 积分
苹果5后置摄像头不能自动对焦& & 前置的很清楚 可以对焦& &但是后置摄像头就就好像那山寨机130W像素的样子& &我怀疑摄像头坏 但是我换了朋友的好的主板跟摄像 也是不能对焦,再把我原来自己用的摄像头装上朋友的机子··在朋友的手机上又可以自己对焦了,请问有高手知道是怎么回事吗?
注册时间 最后登录
在线时间862 小时 UID
主题帖子人气
从刷固件…试试!
[url=%5Burl=%5D[/url]][img=http://i.WoTuLa.
注册时间 最后登录
在线时间22 小时 UID
主题帖子人气
以前是7。03,升了4还是不行。回1楼pqhcxhpwt于4 分钟前发表的: 从刷固件…试试!......
注册时间 最后登录
在线时间317 小时 UID
主题帖子人气
看看下,帮顶
注册时间 最后登录
在线时间1934 小时 UID
主题帖子人气
不懂,帮顶
注册时间 最后登录
在线时间153 小时 UID
主题帖子人气
原因不明,找售后检测看看吧
注册时间 最后登录
在线时间22 小时 UID
主题帖子人气
港行,有点麻烦。回5楼daniel_mj于昨天 22:38发表的: 原因不明,找售后检测看看吧......
注册时间 最后登录
在线时间484 小时 UID
主题帖子人气
- 慢半拍。
注册时间 最后登录
在线时间22 小时 UID
主题帖子人气
自己顶上。求高手指点。
注册时间 最后登录
在线时间22 小时 UID
主题帖子人气
附加,朋友的摄像头跟主板装上我的机子也没有对焦,我原来的摄像头跟主板装他机子上面就有对焦。奇怪的现象。回楼主希子168于昨天 19:58发表的: 苹果5后置摄像头不能自动对焦& & 前置的很清楚 可以对焦& &但是后置摄像头就就好像那山寨机130W像素的样子& &我怀疑摄像头坏 但是我换了朋友的好的主板跟摄像 也是不能对焦,再把我原来自己用的摄像头装上朋友的机子··在朋友的手机上又可以自己对焦了,请......
威锋旗下产品
Hi~我是威威!
沪ICP备号-1 丨 深公安网监备案号 5
增值电信业务经营许可证:
Powered by Discuz!如何实现android手机摄像头的的自动对焦_百度知道
如何实现android手机摄像头的的自动对焦
提问者采纳
setFocusMode(Camera.getParameters(); &#47.P/
m_objCamera.open(),(最好先判断一下手机是否有这个对焦模式.startPreview(),有些手机没有会报错的)
objParam.FOCUS_MODE_CONTINUOUS_PICTURE)m_objCamera = C设置对焦模式为持续对焦;
Camera.setParameters(objParam);
m_objCamera.Parameters objParam = m_objCamera.setDisplayOrientation(90)
资深电脑人
其他类似问题
android手机的相关知识
按默认排序
其他3条回答
智能手机的话,本身就具有的,要么如下和拍照软件。
本来就可以,什么手机
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 android 摄像头权限 的文章

 

随机推荐