首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android camera (froyo)不包含静态方法open()

问android camera (froyo)不包含静态方法open()
EN

Stack Overflow用户
提问于 2011-09-23 18:04:47
回答 3查看 963关注 0票数 1

我必须是第一个面对这个问题的人,因为我找不到任何关于这个问题的线索。

今天,我想从我的应用程序需求的相机方面开始。我读了一些文档

我的清单如下所示:

代码语言:javascript
复制
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

我在<application>上面和<manifest>下面的清单中写下了这段代码

我所做的是;我已经创建了一个新类。使用eclipse作为我的IDE。

然后我声明一个字段:

代码语言:javascript
复制
Camera _camera;

在构造函数中(只是为了测试),我尝试这样做:

代码语言:javascript
复制
_camera = Camera.open();

我收到一个错误。我用我的真实手机来测试这个应用程序,因为我没有网络摄像头或模拟器可以使用的任何东西。当我告诉模拟器要有一个摄像头时,模拟器给了我一个内存错误。

无论如何,当我发现为什么不能使用Camera.open时(我包含了包: android.graphics.Camera;),因为当我用来组织导入函数时,eclipse就包含了这个包。

我查看了eclipse为我附加的android.jar。包含在名为Android 2.2 -> android.jar的文件夹中

我搜索了android.graphics并浏览了一下Camera.class的内容

原来我的Camera类只有这些方法:

代码语言:javascript
复制
Camera()
applyToCanvas()
dotWithNormal()
finalize()
getMatrix()
restore()
rotateX()
rotateY()
rotateZ()
save()
translate()

我故意放出参数,因为它们并不重要。

真正的问题是:为什么?

为什么没有open()方法,没有release()方法?不管我错过了什么..‘

感谢您的阅读。

今天的教训:不要自作聪明。我确实有950%的把握我包含了那个特定的包。但这是一个错误的包裹。德尔普。谢谢你通知我。问题解决了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-23 18:14:27

你用错了相机。

android.graphics.Camera - camera实例可用于计算3D变换并生成可应用于例如画布的矩阵。

android.hardware.Camera - Camera类用于设置图像捕获设置、开始/停止预览、捕捉图片以及检索用于视频编码的帧。这个类是相机服务的客户端,它管理实际的相机硬件。

票数 3
EN

Stack Overflow用户

发布于 2011-09-23 18:13:13

您正在使用错误的Camera类。使用这个http://developer.android.com/reference/android/hardware/Camera.html

您使用的是android.graphics.Camera的相机,我想您需要android.hardware.Camera的相机

票数 0
EN

Stack Overflow用户

发布于 2011-09-23 18:14:57

(是的,我950%确定我已经包含了这个包: android.graphics.Camera;)

您正在寻找android.hardware.Camera。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7527311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档