adroid 拍照API

不知道是不是太简单了,官网上没有拍照的例子,网上搜了一圈。

拍照有两种方式,一是使用android.hardware.Camera,二是使用Intent("android.media.action.IMAGE_CAPTURE");

直接使用可以获取打开摄像头,聚焦,预览等事件,并做处理,稍微麻烦一点。用IMAGE_CAPTURE Intent 可以简单的获取拍照的结果,一张图片。

第一种方法 可以看一下 http://www.qqread.com/other-devtool/v472520.html

我用的第二种方法,API做得很傻瓜了。

配置文件,设置访问权限 AndroidManifest.xml

Java代码   收藏代码
  1. <uses-permission android:name="android.permission.CAMERA" />  
  2. <uses-feature android:name="android.hardware.camera" />  
  3. <uses-feature android:name="android.hardware.camera.autofocus" />  

 

启动照相

Java代码   收藏代码
  1. try {  
  2.     Intent i = new Intent("android.media.action.IMAGE_CAPTURE");  
  3.     startActivityForResult(i, Activity.DEFAULT_KEYS_DIALER);  
  4. catch (Exception e) {  
  5.     Log.e(SimpleCameraActivity.class.getName(), e.getMessage());  
  6. }  

  Activity覆盖onActivityResult获取拍照结果,并显示在一个ImageView 中。

Java代码   收藏代码
  1. @Override  
  2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  3.     getWindow().setTitle("onActivityResult" + resultCode);  
  4.     super.onActivityResult(requestCode, resultCode, data);  
  5.     Bundle extras = data.getExtras();  
  6.     Bitmap b = (Bitmap) extras.get("data");  
  7.     ImageView img = new ImageView(this);  
  8.     img.setImageBitmap(b);  
  9.     setContentView(img);  
  10. }  

 

先了解一下API,后续怎么用再找资料吧。

 

要注意的问题:

在android2.2的AVD 上运行时,中间会报错"Sorry. the application Camera(process com.andoid.camera) has stopped unexpectedly. Please try again."

日志显示

 

Java代码   收藏代码
  1. 07-01 17:26:42.338: ERROR/AndroidRuntime(452): java.lang.IllegalArgumentException: No configs match configSpec  
  2. 07-01 17:26:42.338: ERROR/AndroidRuntime(452):     at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:760)  
  3. 07-01 17:26:42.338: ERROR/AndroidRuntime(452):     at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:916)  
  4. 07-01 17:26:42.338: ERROR/AndroidRuntime(452):     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1246)  
  5. 07-01 17:26:42.338: ERROR/AndroidRuntime(452):     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116)  
  6. 07-01 17:26:42.688: WARN/ActivityManager(92):   Force finishing activity com.android.camera/.Camera  

 

1.5的模拟器没特意加摄像头支持,却不报错,只是提示要SD卡,加了卡的模拟就可以运行了。

2.0的模拟器去掉下面的特性就可以运行。

Java代码   收藏代码
  1. <uses-feature android:name="android.hardware.camera" />  
  2. <uses-feature android:name="android.hardware.camera.autofocus" />  

 

另外官方文档 http://developer.android.com/guide/developing/tools/emulator.html

说不支持摄像头,但是用1.5的AVD 又可以运行,有点晕。

不清楚什么原因,明天找台2.2的手机装装试试。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值