做应用可能有时候需要调用本地的摄像头,所以这里就记录意下如何调用。

摄像头预览需要在布局文件添加surfaceview, 这里需要注意,其实用FrameLayout也可以,大家可以参考

1、布局

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@+id/surfaceview"/>

只要在布局文件添加这个即可。

2、摄像头预览

public class MainActivity extends Activity implements SurfaceHolder.Callback

继承Activity,实现SurfaceHolder.Callback,MainActivity里需要我们复写以下几个方法:

@Override

public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {

System.out.println("surfacechanged");

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

System.out.println("surfacecreated");

//获取camera对象

camera = Camera.open();

try {

//设置预览监听

camera.setPreviewDisplay(holder);

Camera.Parameters parameters = camera.getParameters();

if (this.getResources().getConfiguration().orientation

!= Configuration.ORIENTATION_LANDSCAPE) {

parameters.set("orientation", "portrait");

camera.setDisplayOrientation(90);

parameters.setRotation(90);

} else {

parameters.set("orientation", "landscape");

camera.setDisplayOrientation(0);

parameters.setRotation(0);

}

camera.setParameters(parameters);

//启动摄像头预览

camera.startPreview();

System.out.println("camera.startpreview");

} catch (IOException e) {

e.printStackTrace();

camera.release();

System.out.println("camera.release");

}

}

@Override

public void surfaceDestroyed(SurfaceHolder arg0) {

System.out.println("surfaceDestroyed");

if (camera != null) {

camera.stopPreview();

camera.release();

}

}

当然还有onCreate方法

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

context = this;

surfaceview = (SurfaceView)findViewById(R.id.surfaceview);

surfaceholder = surfaceview.getHolder();

surfaceholder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

surfaceholder.addCallback(SafeActivity.this);

}

,

当然有些变量还需要定义,

private static Context context = null;

private SurfaceView surfaceview;

private SurfaceHolder surfaceholder;

private Camera camera = null;

Android之本地摄像头,Android之调用本地摄像头相关推荐

  1. 摄像头网页服务器,js调用本地摄像头拍照并上传到web服务器

    [实例简介] js调用本地摄像头拍照并上传到web服务器.后台使用java实现图片的接收和存储,上传的图片默认保存到项目下的images文件夹中. [实例截图] [核心代码] MyCamera └── ...

  2. html调起苹果手机摄像头_HTML5如何调用手机摄像头拍照实现方法介绍

    HTML5如何调用安卓手机摄像头拍照实现方法介绍.HTML5 The Media Capture API提供了对摄像头的可编程访问,可以直接用getUserMedia获得摄像头提供的视频流.其实实际上 ...

  3. html调起苹果手机摄像头_html5 file调用手机摄像头

    在切图网一个客户的webapp项目中需要用到 html5调用手机摄像头,找了很多资料,大都是 js调用api  然后怎样怎样,做了几个demo测试发现根本不行, 后来恍然大悟,用html5自带的 in ...

  4. matlab调用摄像头函数,Matlab调用系统摄像头

    Matlab直接安装没有摄像头得驱动,需要安装插件 链接:http://blog.xxcxw.cn/2018/07/06/matlab调用系统摄像头/ 一.摄像头的属性 imaqhwinfo()可以了 ...

  5. android sdk引入 微信分享_android 调用本地微信自定义多图分享朋友圈,可放在share sdk中一起使用...

    最终的效果图,右下角微信多图为自定义调用系统分享,分享到微信. 在你能正常调用share sdk的时候想在原本的基础上加自定义的分享非常的简单. 它的官网已经给出了代码,但是给的不是很清楚. lz毕竟 ...

  6. 网络摄像头python_Python OpenCV 调用网络摄像头

    OpenCV调用摄像头 环境 python:python3.6 摄像头:网络摄像头 Python库:openCV # -*- coding: utf-8 -*- # @author leone # @ ...

  7. android webview java_Android Webview中调用本地java方法

    在网页调用本地的分享SDK class JsObject { @JavascriptInterface public String toString() { return "injected ...

  8. Xamarin.Android 调用本地相册

    调用本地相册选中照片在ImageView上显示 代码: using System; using System.Collections.Generic; using System.Linq; using ...

  9. android webview打开相册,Android WebView调用本地相册的方法

    本文实例为大家分享了Android WebView调用本地相册的具体实现方法,供大家参考,具体内容如下 首先要知道android本身的WebView是并不支持调用手机文件并上传的,其次WebView的 ...

最新文章

  1. CodeGen编写自定义表达式标记
  2. 李沐团队新作Gluon,复现CV经典模型到BERT,简单好用 | 强烈推荐
  3. VMware安装RedHat 6(64位)报错问题
  4. java el jstl_java -EL技术JSTL技术
  5. poj 1306 Combinations
  6. 【网络安全】如何搭建MySQL恶意服务器读取文件?
  7. magento php 所需模块,Magento 博客
  8. [Qt] 利用QtWebKit完成JavaScript访问C++对象
  9. 996!007!同是敲了2万行代码,为什么他却晋升了?
  10. TestNG – Dependency Test
  11. 插入公式_word2016编写文档 插入公式选项为暗,不能操作
  12. python获取当前路径和上一层路径_python获取当前路径和上一级路径
  13. macfee怎么生成释放代码_批处理应用:使用FLASHGET检查Mcafee SuperDat更新分享
  14. C++基础——格式化输出
  15. Python标准库 urllib
  16. Unity网络编程教学视频(本人第一次录制)
  17. 怎么批量生成100多条短视频素材
  18. 【论文阅读】时间序列中的变量是一张知识图谱
  19. 计算机科学导论的探讨论文,计算机科学导论论文.doc
  20. 【力扣】2的幂,3的幂,4的幂

热门文章

  1. 【Flink】FLink 提交报错 instead of minReplication (=1). There are 3 datanode(s) running and 3 node(s) are
  2. Kafka : kafka errors.DisconnectException: null
  3. Spring :@Configuration 注解
  4. MyBatis-Plus: 谨慎入坑
  5. Android生命周期帮助类,Android Service类与生命周期详细介绍_Android_脚本之家
  6. java使用poi操作excel文件_使用 java apache poi 操作 excel xlsx 文件
  7. 使用Redis作为分布式锁的错误用法
  8. 从0到上线一个完整Java项目,需要具备哪些技能?
  9. oracle扩容bigfile,Oracle10g BIGFILE表空间带来的好处
  10. android 8 ril,Android 8.0 RIL源码分析(二)