当前位置: 首页 > news >正文

android 调用系统摄像头

在开发android 应用的时候我们经常需要用到摄像头来进行拍照或者是录制视频,这里介绍一种最简单的方法:调用系统摄像头来拍照,并将照片保存起来

启动摄像头的方法:

startActivityForResult(new Intent("android.media.action.IMAGE_CAPTURE"), TAKE_PICTURE);

拍摄成功后接收参数的接收方法我们只需要重写

protected void onActivityResult(int requestCode, int resultCode, Intent data)方法即可

如:

final int TAKE_PICTURE = 1;

	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (requestCode == TAKE_PICTURE) {
			if (resultCode == RESULT_OK) {
				Bitmap bm = (Bitmap) data.getExtras().get("data");
				imgPhoto.setImageBitmap(bm);// ??¨ª?????¨º??¨²ImageView¨º¨®¨ª?¨¦?¡ê?private
				// ¡ä?¡ä|?D??¡ä?¡ä¡é?¡§¨º?¡¤?¡ä??¨²
				sdCardExit = Environment.getExternalStorageState().equals(
						android.os.Environment.MEDIA_MOUNTED);					// ImageView img;
				if (sdCardExit) {
					myRecAudioDir = new File(Environment
							.getExternalStorageDirectory().getAbsolutePath()
							+ "/custom_picture");
					if (!myRecAudioDir.exists()) {
						myRecAudioDir.mkdir();
					}
				} else {
					mMakeTextToast("¡ä?¡ä¡é?¡§2?¡ä??¨²", true);
				}
				try {
					File f = File.createTempFile(strTempFile, ".jpg",
							myRecAudioDir);

					BufferedOutputStream bos = new BufferedOutputStream(
							new FileOutputStream(f));
					photoPath=f.getPath();
					/* 2¨¦¨®??1??¡Áa¦Ì¦Ì¡¤?¡¤¡§ */
					bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);

					/* ¦Ì¡Â¨®?flush()¡¤?¡¤¡§¡ê??¨¹D?BufferStream */
					bos.flush();

					/* ?¨¢¨º?OutputStream */
					bos.close();
				} catch (FileNotFoundException e) {					
					e.printStackTrace();
				} catch (IOException e) {					
					e.printStackTrace();
				}
			}
		}
	}
拍摄效果如下图:
 
返回结果如下图:
 

转载于:https://www.cnblogs.com/vaiyanzi/archive/2011/07/14/2106298.html

相关文章:

  • _shared_pool_reserved_pct or shared_pool_reserved_size with ASMM
  • jQuery选择器详解[转]
  • linux 下安装tomcat
  • 上传表单的样式模拟
  • CentOS 6.8无法启动图形界面
  • django login 限制
  • qmail 邮件过滤与抄送
  • 域控安装问题集锦
  • GPS开发报错provider为空问题解决
  • 使用序列化快速读写XML文件
  • rsync 配置说明和命令参数
  • 宏常用例子
  • MySQL表类型
  • Javascript类的定义和引用
  • 通过网页文件获取数据库账号和口令
  • 「译」Node.js Streams 基础
  • Fundebug计费标准解释:事件数是如何定义的?
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript设计模式与开发实践系列之策略模式
  • JSDuck 与 AngularJS 融合技巧
  • Linux中的硬链接与软链接
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • MySQL QA
  • Vue--数据传输
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 分布式事物理论与实践
  • 关于字符编码你应该知道的事情
  • 排序算法之--选择排序
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 一道闭包题引发的思考
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • #define与typedef区别
  • #stm32驱动外设模块总结w5500模块
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (3)(3.5) 遥测无线电区域条例
  • (7)STL算法之交换赋值
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (一)认识微服务
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Core引入性能分析引导优化
  • .NET微信公众号开发-2.0创建自定义菜单
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @取消转义
  • [ C++ ] 继承
  • [Android View] 可绘制形状 (Shape Xml)
  • [Android]Android开发入门之HelloWorld
  • [EFI]英特尔 冥王峡谷 NUC8i7HVK 电脑 Hackintosh 黑苹果efi引导文件
  • [hdu 1247]Hat’s Words [Trie 图]
  • [LaTex]arXiv投稿攻略——jpg/png转pdf
  • [luogu P1527]矩阵乘法(矩形k小)