实习接触的项目中需要调用系统摄像头进行拍照,通过完成这个功能点暂时初步了解了Android中的Camera,当然目前只是停留在使用阶段,对于Camera的深度剖析有机会也要了解一下。

通过Camera控制摄像头拍照的步骤:

1.调用Camera的open()方法打开相机。

2.调用Camera的setParameters()方法获取拍照参数。该方法返回一个Camera.Parameters对象。

3.调用Camera.Paramers对象方法设置拍照参数

4.调用Camera的setParameters,并将Camera.Paramers作为参数传入,这样即可对相机的拍照参数进行控制

5.调用Camera的startPreview()方法开始预览取景,在预览取景之前需要调用Camera的setPreViewDisplay(SurfaceHolder holder)方法设置使用哪个SurfaceView来显示取景图片。

6.调用Camera的takePicture()方法进行拍照.

7.结束程序时,调用Camera的StopPriview()结束取景预览,并调用release()方法释放资源。

运行效果:

涉及Camera使用的相关代码:

private void initCamera()

{

if (!isPreview)

{

camera = Camera.open();  //1.调用Camera的open()方法打开相机。

}

if (camera != null && !isPreview)

{

try

{

//2.调用Camera的setParameters()方法获取拍照参数。该方法返回一个Camera.Parameters对象。

Camera.Parameters parameters = camera.getParameters();

//3.调用Camera.Paramers对象方法设置拍照参数

// 设置预览照片的大小

parameters.setPreviewSize(screenWidth, screenHeight);

// 每秒显示4帧

parameters.setPreviewFrameRate(4);

// 设置图片格式

parameters.setPictureFormat(PixelFormat.JPEG);

// 设置JPG照片的质量

parameters.set("jpeg-quality",85);

//设置照片的大小

parameters.setPictureSize(screenWidth, screenHeight);

//4.调用Camera的setParameters,并将Camera.Paramers作为参数传入,这样即可对相机的拍照参数进行控制

camera.setParameters(parameters);

/**

*  5.调用Camera的startPreview()方法开始预览取景,在预览取景之前需要调用

*  Camera的setPreViewDisplay(SurfaceHolder holder)方法设置使用哪个SurfaceView来显示取景图片。

*  通过SurfaceView显示取景画面

*/

camera.setPreviewDisplay(surfaceHolder);

// 开始预览

camera.startPreview();

// 自动对焦

camera.autoFocus(afcb);

}

catch (Exception e)

{

e.printStackTrace();

}

isPreview = true;

}

}

//设置监听器,触摸屏幕即拍照

sView.setOnTouchListener(new View.OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method stub

if(event.getAction()==MotionEvent.ACTION_DOWN){

if (camera != null)

{

// 6.调用Camera的takePicture()方法进行拍照.

camera.takePicture(null, null , myjpegCallback);

return true;

}

}

return false;

}

});

linux摄像头拍照程序,Android开发:Camera初探——控制摄像头拍照相关推荐

  1. Ubuntu Linux环境下的Android开发环境的配置

    在Android底层开发中需要用到的工具有:JDK6或以上版本:Eclipse3.4或以上版本:ADT;CDT;Android SDK:Android NDK:交叉编译环境:Linux内核源代码:An ...

  2. Ubuntu Linux下如何配置Android开发环境

    下载和安装Win7系统Android开发环境中讲了怎样在Win7系统中安装Android开发环境,那么怎样在Linux系统中配置Android开发环境呢?本篇文章就将演示如何使用Eclipse.And ...

  3. android android 修改 jpg exif 属性,Android开发之使用ExifInterface获取拍照后的图片属性...

    本文实例讲述了Android开发之使用ExifInterface获取拍照后的图片属性.分享给大家供大家参考,具体如下: ExifInterface exif = new ExifInterface(f ...

  4. ubuntu 配置android环境,Ubuntu Linux下如何配置Android开发环境

    下载和安装Win7系统Android开发环境中讲了怎样在Win7系统中安装Android开发环境,那么怎样在Linux系统中配置Android开发环境呢?本篇文章就将演示如何使用Eclipse.And ...

  5. 最简单DIY基于ESP8266的智能彩灯⑥(Android开发通过WIFI控制彩灯实现表白神器)

    ESP8266和ESP32智能彩灯开发系列文章目录 第一篇:最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯) 第二篇:最简单DIY基于ESP8266的智能彩灯②(在网页用按键 ...

  6. Android添加拍照功能,Android开发实现拍照功能的方法实例解析

    本文实例讲述了Android开发实现拍照功能的方法.分享给大家供大家参考,具体如下: 解析: 1)判断是否有摄像头checkCameraHardware(this) 2)获得相机camera = Ca ...

  7. 【Android 开发】SufaceView自定义相机拍照

    前段时间写了关于一篇关于调用系统相机的博客,如果需要调用系统相机和截图可以看一看这篇博客:Android学习之调用系统相机拍照.截图并保存最近发现不同手机,调用系统相机效果不太好,,所以学习Andro ...

  8. Android开发自定义相机,自定义拍照界面

    1.目的 :开发时产品需求自己定义拍照界面,拍照处理.如下图:自定义一个拍照界面 可以看到,底部拍照按钮,和相册选择.整个界面和系统相机不一样.这时我们就要自己去开发定义自己的相机处理. 2.实现思路 ...

  9. Android开发 :调用系统相机拍照保存照片并显示在当前界面

    主要思路:调用照相机拍照,然后为拍得的照片在SD卡新开一个储存照片的文件,然后在onActivityResult中进行照片显示 1.因为要调用照相机和SD卡所以需要在manifest.xml中添加以下 ...

最新文章

  1. 人工智能技术,对智慧交通的发展带来巨大影响
  2. 战神背光键盘如何关系_显瘦又有肌肉 神舟战神Z7MKP5GZ评测
  3. springmvc和tomcat原理
  4. RxJava 和 RxAndroid 三(生命周期控制和内存优化)
  5. python中递归函数特点,Python递归函数特点及原理解析
  6. 题目1005:Graduate Admission(结构体排序)
  7. SVG 教程 (四)多边形,曲线,路径
  8. Windows Server 2008搭建域环境---安装活动目录
  9. 1加6投屏_6月的早餐,1杯牛奶加燕麦,营养健康又美味,饱腹感很强
  10. python consul
  11. java canvas类_java中的canvas类有什么作用?
  12. Java常用算法三:01背包问题
  13. 网易云音乐歌词下载 C#
  14. Android NDK下载(r10~r25) 持续更新
  15. 【设备管理】【OEE】30页精彩PPT:详解精益生产OEE
  16. 浅述SATA接口Raid、AHCI、IDE三种模式
  17. 面试之springboot是什么?
  18. LAMP平台部署及应用_wuli大世界_新浪博客
  19. 环境保护设施运营组织服务认证
  20. python中 f代表什么_python 中下拉框中的f,v,m是什么意思??

热门文章

  1. 通过PS合成电影场景里海怪的场景
  2. [USACO09MAR]向右看齐Look Up(单调栈、在线处理)
  3. Java序列化与反序列化(一)
  4. Synchronized解析——一层一层剥开洋葱的心
  5. scrapy代理IP
  6. Macbook Pro 外接显卡实现Tensorflow GPU运行之环境配置(重点)
  7. 爬取王者荣耀官网英雄皮肤高清壁纸(简易方法)
  8. 马尔萨斯人口论与数学模型
  9. Python设计一个学生类
  10. java 锁降级 知乎_锁降级