国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現手機攝像頭的自動對焦

2019-12-12 04:45:41
字體:
來源:轉載
供稿:網友

如何實現Android相機的自動對焦,而且是連續自動對焦的。當然直接調用系統相機就不用說了,那個很簡單的。下面我們主要來看看如如何自己實現一個相機,并且實現自動連續對焦。

代碼如下:

public class MainActivity extends Activity { private SurfaceView surfaceView; private SurfaceHolder surfaceHolder; private boolean flag = false; private String fileUrl=""; Camera camera; Camera.Parameters parameters;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);   surfaceView = (SurfaceView) findViewById(R.id.surfaceView1);   Button button=(Button) findViewById(R.id.takepicture);   surfaceHolder = surfaceView.getHolder();   surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);   surfaceHolder.setKeepScreenOn(true);   surfaceView.setFocusable(true);   surfaceView.setBackgroundColor(TRIM_MEMORY_BACKGROUND);   surfaceHolder.addCallback(new Callback() {   @Override public void surfaceDestroyed(SurfaceHolder holder) {  // TODO Auto-generated method stub  camera.stopPreview();  camera.release();  camera=null;   }   @Override public void surfaceCreated(SurfaceHolder holder) {  // TODO Auto-generated method stub  if(null==camera){   camera=Camera.open();      try {     camera.setPreviewDisplay(surfaceHolder);     initCamera();         camera.startPreview();  } catch (IOException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }     }   }      @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height){     //實現自動對焦      camera.autoFocus(new AutoFocusCallback() {        @Override  public void onAutoFocus(boolean success, Camera camera) {         if(success){         initCamera();//實現相機的參數初始化         camera.cancelAutoFocus();//只有加上了這一句,才會自動對焦。         }        }  });    } }); } //相機參數的初始化設置   private void initCamera() {    parameters=camera.getParameters();    parameters.setPictureFormat(PixelFormat.JPEG);    //parameters.setPictureSize(surfaceView.getWidth(), surfaceView.getHeight()); // 部分定制手機,無法正常識別該方法。  parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);   parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);//1連續對焦  setDispaly(parameters,camera);  camera.setParameters(parameters);  camera.startPreview();  camera.cancelAutoFocus();// 2如果要實現連續的自動對焦,這一句必須加上   }    //控制圖像的正確顯示方向   private void setDispaly(Camera.Parameters parameters,Camera camera)   {   if (Integer.parseInt(Build.VERSION.SDK) >= 8){  setDisplayOrientation(camera,90);  } else{  parameters.setRotation(90);  }      }      //實現的圖像的正確顯示   private void setDisplayOrientation(Camera camera, int i) {   Method downPolymorphic; try{   downPolymorphic=camera.getClass().getMethod("setDisplayOrientation", new Class[]{int.class});     if(downPolymorphic!=null) {      downPolymorphic.invoke(camera, new Object[]{i});      }  }  catch(Exception e){  Log.e("Came_e", "圖像出錯");  }   }   @Override  public boolean onCreateOptionsMenu(Menu menu) {    // Inflate the menu; this adds items to the action bar if it is present.    getMenuInflater().inflate(R.menu.main, menu);        return true;  }    }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泗阳县| 抚州市| 南通市| 镇远县| 手游| 琼结县| 定日县| 嘉善县| 仁化县| 南涧| 东港市| 滨海县| 黎川县| 于都县| 罗江县| 自治县| 师宗县| 遵义市| 吉林市| 贵德县| 大洼县| 昌宁县| 静宁县| 玉环县| 木兰县| 韶山市| 汉中市| 乐平市| 什邡市| 惠来县| 东莞市| 兖州市| 石台县| 赤峰市| 景洪市| 枣强县| 常熟市| 新乡县| 定远县| 京山县| 涿州市|