知识库

android开发教程My Android Camera Notes

网站:知识库   来源:网络收集

本文由麦可网 http://www.microoh.com/ 收集整理,转载请注明出处。

My Android Camera Notes 1.使用 SurfaceView 控件来显示摄像头捕捉到的画面 XML/HTML 代码  2.具体细节 /*获取 SurfaceView 控件*/ SurfaceView surfaceView = (SurfaceView)this.findViewById(R.id.surfaceView); /*设置分辨率*/ surfaceView.getHolder().setFixedSize(176, 144); /*下面设置 Surface 不维护自己的缓冲区, 而是等待屏幕的渲染引擎将内容推送到用户面前 */ surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); /*打开摄像头,注意这里是 Android.hardware.Camera */ Camera camera = Camera.open(); /*为 Camera 设置摄像参数*/ Camera.Parameters parameters = camera.getParameters(); /*设置预览照片的大小,此处设置为全屏*/ WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); // 获取当前屏幕管理器对象 Display display = wm.getDefaultDisplay(); //获取屏幕信息的描述类 parameters.setPreviewSize(display.getWidth(), display.getHeight()); //设置 /*每秒从摄像头捕获5帧画面,*/ parameters.setPreviewFrameRate(5); /*设置照片的输出格式:jpg */ parameters.setPictureFormat(PixelFormat.JPEG); /*照片质量*/

本文由麦可网 http://www.microoh.com/ 收集整理,转载请注明出处。

parameters.set("jpeg-quality", 85); /*设置照片的大小:此处照片大小等于屏幕大小*/ parameters.setPictureSize(display.getWidth(), display.getHeight()); /*将参数对象赋予到 camera 对象上*/ camera.setParameters(parameters); /*设置用 SurfaceView 作为承载镜头取景画面的显示*/ camera.setPreviewDisplay(surfaceView.getHolder()); /*开始预览*/ camera.startPreview(); /*自动对焦*/ camera.autoFocus(null); /*拍照片*/ camera.takePicture(null, null, null, jpegCallback); /*停止预览*/ camera.stopPreview(); /*释放摄像头*/ camera.release(); 3.添加使用摄像头的权限 4.测试:目前模拟器不支持拍照环境的模拟,必须使用真实手机测试。

5.代码清单 ** string values : strings.xml XML/HTML 代码  手机拍照程序 

本文由麦可网 http://www.microoh.com/ 收集整理,转载请注明出处。

** AndroidManifest.xml XML/HTML 代码                   ** main.xml XML/HTML 代码  

本文由麦可网 http://www.microoh.com/ 收集整理,转载请注明出处。

        android:layout_height="fill_parent" > ** MainActicity Java 代码  publicclassMainActicityextendsActivity{  privateCameracamera;  privatebooleanpreview=false;  @Override  publicvoidonCreate(BundlesavedInstanceState){  super.onCreate(savedInstanceState);   /*  *设置窗口属性:一定要在 setContentView(R.layout.main)之前  */  //窗口标题  requestWindowFeature(Window.FEATURE_NO_TITLE);  //全屏  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowMa nager.LayoutParams.FLAG_FULLSCREEN);   setContentView(R.layout.main);   SurfaceViewsurfaceView=(SurfaceView)findViewById(R.id.surfaceView);  surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS) ;  surfaceView.getHolder().setFixedSize(176,164);   surfaceView.getHolder().addCallback(newSurfaceViewCallback());  }   privatefinalclassSurfaceViewCallbackimplementsCallback{  /**

本文由麦可网 http://www.microoh.com/ 收集整理,转载请注明出处。

 *surfaceView 被创建成功后调用此方法  */  @Override  publicvoidsurfaceCreated(SurfaceHolderholder){  /*  *在 SurfaceView 创建好之后打开摄像头  *注意是 android.hardware.Camera  */  camera=Camera.open();  Camera.Parametersparameters=camera.getParameters();  /*设置预览照片的大小,此处设置为全屏*/  WindowManagerwm=(WindowManager)getSystemService(Context.WINDOW_SERVICE); //获取当前屏幕管理器对象  Displaydisplay=wm.getDefaultDisplay();//获取屏幕信息的描述类  parameters.setPreviewSize(display.getWidth(),display.getHeight());//设置   /*每秒从摄像头捕获5帧画面,*/  parameters.setPreviewFrameRate(5);  /*设置照片的输出格式:jpg*/  parameters.setPictureFormat(PixelFormat.JPEG);  /*照片质量*/  parameters.set("jpeg-quality",85);  /*设置照片的大小:此处照片大小等于屏幕大小*/  parameters.setPictureSize(display.getWidth(),display.getHeight());  /*将参数对象赋予到 camera 对象上*/  camera.setParameters(parameters);  preview=true;  }  @Override  publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,  intheight){  }  /**  *SurfaceView 被销毁时释放掉摄像头  */  @Override  publicvoidsurfaceDestroyed(SurfaceHolderholder){  if(camera!=null){  /*若摄像头正在工作,先停止它*/  if(preview){  camera.stopPreview();  preview=false;  }  camera.release();

本文由麦可网 http://www.microoh.com/ 收集整理,转载请注明出处。

 }  }   }    /**  *手机键盘按键  *返回 true,将阻止继续传递,例如搜索键,他默认会触发和打开系统的搜索引 擎。

返回 true 后,将不会触发。

 */  @Override  publicbooleanonKeyDown(intkeyCode,KeyEventevent){  /*  *event.getRepeatCount()为重复按键的次数, 例如, 快速地对某个键连续按了两次, 则此值为一,表示重复了一次。

往上可以累推。

 *按键只被按了一次,则此值为0。

 *这有点类似于鼠标的"单击"和"双击"。

 */  if(camera!=null&&event.getRepeatCount()==0){  switch(keyCode){  caseKeyEvent.KEYCODE_SEARCH://搜索键  /*按下搜索键自动对焦,如果要关注它的,  *可以实现 AutoFocusCallback 接口,并实例化其对象传入*/  camera.autoFocus(null);  break;  caseKeyEvent.KEYCODE_CAMERA://拍照键  caseKeyEvent.KEYCODE_DPAD_CENTER://中间确认键  /*  *@paramshutter:照片获之后的回调对象  *@paramraw:此回调对象可以生产为压缩的图片数据  *@paramjpeg:此回调对象可以产生压缩后的图片数据, onPictureTaken 将被调用 其  */  camera.takePicture(null,null,newTakePictureCallback());   /*拍完照后回到预览状态,继续取景--错误的方式*/  //camera.startPreview();必须写在 onPictureTaken 方法内部,因为 takePicture 内部是另开了一条线程异步的完成保存照片等操作。

 //虽然 takePicture 方法完成了,但是并不代表其内部的工作全部完成,也不代表 摄像头以及从上一次“拍照”任务中工作完毕  break;  default:  break;  }

相关内容
  • 学习Android开发以及教程学习

    学习Android开发以及教程学习

    学习Android开发以及教程学习...

  • Android开发教程之Android快速入门

    Android开发教程之Android快速入门

    Android开发教程之Android快速入门...

  • Android官方开发教程中文版(一)

    Android官方开发教程中文版(一)

    Android官方开发教程中文版(一)...

  • Android开发教程之Android的安全与权限

    Android开发教程之Android的安全与权限

    Android开发教程之Android的安全与权限...

  • Android系统的开发教程

    Android系统的开发教程

    Android系统的开发教程...

  • Android开发教程之Android控件

    Android开发教程之Android控件

    Android开发教程之Android控件...

  • Android开发教程4

    Android开发教程4

    Android开发教程4...

  • Android新手开发教程

    Android新手开发教程

    Android新手开发教程...

  • Android开发教程详细版

    Android开发教程详细版

    Android开发教程详细版...

  • Android开发教程

    Android开发教程

    Android开发教程...

  • 网友在搜
    前妻影音先锋 jason chen 说唱 浙江省设计院 tcl p588l刷机包 电信 沧龙vs龙王鲸 水泥厂事故案例 gta4无法使用任务 full of energy can t add script 煤矿安全心得体会 权志龙mama2015 beoplayer 下载 嗒嘀嗒童装旗舰店 oldnewexplorer tea party攻略 密室 白漫画一肖中特马28期 centos 旧版本 473等于多少nf dnf魔皇90武器 3d附身药水13 蛇钻进女生肚子里漫画 canon公司 parrot zik 长安cs75内饰 萨特 百度盘 cos的平方30度 lolita x city pic crmn078 链接 hadoop semijoin ios 设计模式 taco bell wikipedia caravan 下载 the practice bali 资源网toodu htc 816 root包 vc编辑框换行 hunta在线播放 www./yaya67.com m5000显卡参数 丝袜子金巧,巧. 塞尔达 a brother initial wsdl wadl veryhairywomen mk邮差包新款 保定康远边城小镇 潮汕味道 pdf promenade kengo 3dmaxcloth 衣服 曼谷nana plaza 台湾alaso假货

    All Right Reserved 知识库

    声明:本站内容源于网络,出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,请咨询相关专业人士。

    如果无意之中侵犯了您的版权,或有意见、反馈或投诉等情况 网站地图 网站栏目