不知道是不是太简单了,官网上没有拍照的例子,网上搜了一圈。
拍照有两种方式,一是使用android.hardware.Camera,二是使用Intent("android.media.action.IMAGE_CAPTURE");
直接使用可以获取打开摄像头,聚焦,预览等事件,并做处理,稍微麻烦一点。用IMAGE_CAPTURE Intent 可以简单的获取拍照的结果,一张图片。
第一种方法 可以看一下 http://www.qqread.com/other-devtool/v472520.html
我用的第二种方法,API做得很傻瓜了。
配置文件,设置访问权限 AndroidManifest.xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
启动照相
try {
Intent i = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(i, Activity.DEFAULT_KEYS_DIALER);
} catch (Exception e) {
Log.e(SimpleCameraActivity.class.getName(), e.getMessage());
}
Activity覆盖onActivityResult获取拍照结果,并显示在一个ImageView 中。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
getWindow().setTitle("onActivityResult" + resultCode);
super.onActivityResult(requestCode, resultCode, data);
Bundle extras = data.getExtras();
Bitmap b = (Bitmap) extras.get("data");
ImageView img = new ImageView(this);
img.setImageBitmap(b);
setContentView(img);
}
先了解一下API,后续怎么用再找资料吧。
要注意的问题:
在android2.2的AVD 上运行时,中间会报错"Sorry. the application Camera(process com.andoid.camera) has stopped unexpectedly. Please try again."
日志显示
07-01 17:26:42.338: ERROR/AndroidRuntime(452): java.lang.IllegalArgumentException: No configs match configSpec
07-01 17:26:42.338: ERROR/AndroidRuntime(452): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:760)
07-01 17:26:42.338: ERROR/AndroidRuntime(452): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:916)
07-01 17:26:42.338: ERROR/AndroidRuntime(452): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1246)
07-01 17:26:42.338: ERROR/AndroidRuntime(452): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116)
07-01 17:26:42.688: WARN/ActivityManager(92): Force finishing activity com.android.camera/.Camera
1.5的模拟器没特意加摄像头支持,却不报错,只是提示要SD卡,加了卡的模拟就可以运行了。
2.0的模拟器去掉下面的特性就可以运行。
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
另外官方文档 http://developer.android.com/guide/developing/tools/emulator.html
说不支持摄像头,但是用1.5的AVD 又可以运行,有点晕。
不清楚什么原因,明天找台2.2的手机装装试试。。。。
分享到:
相关推荐
day13_API-异常.pdf
day07_API02
day06_API01
Day3WebAPI
day08-常用API
day09【API、String类、StringBuilder类】.pdf
day04-常用API&异常
day01【Object类、常用API】-笔记.md
Altium designer中文培训资料Day1、Day2、Day3
day03-内部类&API
黑马程序员_hibernate框架开发2016版讲义和笔记资料_day1_day2_day3_day4 包含4天的教学文档
1.常用API 2.异常 3.Collections 小车穿沿在蜿蜒曲折的盘山公路上
java比较常用的api,自己整合的,有些会有重复,请自行筛选
1.1API概述【理解】 1.2如何使用API帮助文档【应用】 2.2String类的特点【理解】 2.3String类的构造方法【记忆】 2.4创建字符串对象
进阶day3 -仪表板交互作业工作薄_v2019.4.twbx
day01【Object类、常用API】
Red Hat Certificated System Administrator (RHCSA) of RHEL 7, this is lesson three.
day12_Object类、常用API.pdf
1.接口 2.内部类 3.API 小车穿沿在蜿蜒曲折的盘山公路上
进阶day3 - 仪表板交互开始工作薄_v2019.4.twbx