Android - 拍摄照片
Posted
技术标签:
【中文标题】Android - 拍摄照片【英文标题】:Android - Capture photo 【发布时间】:2011-03-30 08:23:29 【问题描述】:在我的应用程序中,我必须实现本地相机活动,我必须启动相机并拍照。
详细来说, 我的应用程序包含一个 TextView(顶部)显示活动名称和一个按钮(底部),在屏幕的中间区域,应查看相机预览。当用户单击该按钮时,应单击并显示快照进入另一个活动的 Imageview。
我知道使用了以下方法:
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult( intent, 0 );
但是如果我使用这种方法,那么我的文本视图和按钮视图不会显示。
(请注意:我正在使用带有 HTC Hero 的 Android SDK 1.5)
请通过任何文章、网站或 pdf 的建议帮助我。
谢谢,帕雷什
【问题讨论】:
【参考方案1】:如果您尝试使用本机摄像头,一旦调用本机摄像头,它将控制您的视图。但是,如果您想实现自己的相机,那么这样的布局是可能的。可以在这里找到一些很好的例子:
http://www.brighthub.com/mobile/google-android/articles/43414.aspx
http://labs.makemachine.net/2010/03/simple-android-photo-capture/
http://www.jondev.net/articles/Capturing,_Saving,_and_Displaying_an_Image_in_Android_(1.5,_1.6,_2.0,_2.1,_2.2,_Sense_UI_-_Hero)祝你好运!
【讨论】:
看起来...最后我必须以第二种链接方式实现相机应用程序 感谢您提供宝贵的答案..但是让我知道使用 IMAGE_CAPTURE 意图捕获的最大尺寸是多少? 你可以得到它们的全尺寸,但你可能不是。我遇到了同样的问题,以比我猜测的更小的图像返回图片。理论上,您应该能够通过您在意图上指定的路径获取位图。但是我能够通过以下方式检索更大的版本: Uri pic = Uri.parse(data.toURI());位图 bm = Media.getBitmap(getContentResolver(), pic);在 onActivityResult 方法中。希望这会有所帮助。 我在我的应用程序中实现的第二个链接方式......感谢让我的生活......非常有用的链接和你的支持 @PareshMayani 您好 Paresh,第二个链接已损坏...您能帮我解决这个问题吗?【参考方案2】:所有说明都在http://developer.android.com/reference/android/hardware/Camera.htmlhttp://developer.android.com/reference/android/hardware/Camera.html的android.hardware.Camera 的JavaDoc 中:
-
从 open() 获取 Camera 实例。
使用 getParameters() 获取现有(默认)设置。
如有必要,修改返回的Camera.Parameters对象并调用setParameters(Camera.Parameters)。
如果需要,调用 setDisplayOrientation(int)。
重要提示:将完全初始化的 SurfaceHolder 传递给 setPreviewDisplay(SurfaceHolder)。没有表面,相机将无法开始预览。
重要提示:调用 startPreview() 开始更新预览图面。必须先开始预览,然后才能拍照。
如果需要,请调用 takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback) 来拍摄照片。等待回调提供实际的图像数据。
拍照后,预览显示将停止。要拍摄更多照片,请先再次调用 startPreview()。
调用 stopPreview() 以停止更新预览图面。
重要提示:调用 release() 以释放相机以供其他应用程序使用。应用程序应立即在 onPause() 中释放相机(并在 onResume() 中重新打开()它)。
SurfaceHolder 通常使用SurfaceView 实现
【讨论】:
感谢答案..我已经阅读了这篇文章,但不知道如何实现它。以上是关于Android - 拍摄照片的主要内容,如果未能解决你的问题,请参考以下文章
Android:BroadcastReceiver 意图检测拍摄的相机照片?
Android笔记67Android之使用系统中的相机功能(拍照保存照片显示拍摄的照片照片保存到图库等操作)