- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
android调用系统相机拍照获取原图
android 调用系统相机拍照 获取原图
好吧,为了这个问题又折腾了一整天。之前在网上找来的方法,如果在onActivityResult中直接用data.getData 的方式来生成bitmap,其实获取的是拍照生成的缩略图!看看尺寸就知道了。如果要获取原图,还需要一番折腾(特别是对于手里这个Samsung i9000)——之前朋友在不同的机型上使用的方法在我这里一直报错,且属于那种uncaught的错误-.-?话说回来,具体的折腾方法如下(如果不幸你看到了,希望不要“折疼了”):?在拍照的出发按钮的点击事件中写入如下代码:?toCam.setOnClickListener new View.OnClickListener @Override?public void onClick View v //先验证手机是否有sdcard?String status Environment.getExternalStorageState ;?if status.equals Environment.MEDIA_MOUNTED try ?File dir new File Environment.getExternalStorageDirectory + /+localTempImgDir ;?if !dir.exists dir.mkdirs ;?Intent intent new Intent android.provider.MediaStore.ACTION_IMAGE_CAPTURE ;?File f new File dir, localTempImgFileName ;//localTempImgDir和localTempImageFileName是自己定义的名字?Uri u Uri.fromFile f ;?intent.putExtra MediaStore.Images.Media.ORIENTATION, 0 ;?intent.putExtra MediaStore.EXTRA_OUTPUT, u ;?startActivityForResult intent, GET_IMAGE_VIA_CAMERA ;? catch ActivityNotFoundException? e // TODO Auto-generated catch block?Toast.makeText ImpromptuActivity.this, 没有找到储存目录,Toast.LENGTH_LONG .show ; else ?Toast.makeText ImpromptuActivity.this, 没有储存卡,Toast.LENGTH_LONG .show ; dialog.dismiss ; ;?在onActivityResult中这样折腾:?@Override?protected void onActivityResult int requestCode, int resultCode, Intent data if resultCode RESULT_OK switch requestCode case GET_IMAGE_VIA_CAMERA:?File f new File Environment.getExternalStorageDirectory ?+/+localTempImgDir+/+localTempImgFileName ;?try Uri u Uri.parse android.provider.MediaStore.Images.Media.insertImage getContentResolver , f.getAbsolutePath , null, null ; //u就是拍摄获得的原始图片的uri,剩下的你想干神马坏事请便……? catch FileNotFoundException e // TODO Auto-generated catch block e.printStackTrace ; break; super.onActivityResult requestCode, resultCode, data ; 别高兴太早了,还有关键问题:?上面的代码只要你会用google,一般都能找来拼凑一番。但是,仅仅是这样,你还会得到未知错误……Samsung的系统相机,版式是横板的,如果你的activity恰巧是竖版的,那么获取这个回调uri的时候,很可能为空!?原因在于,如果你没有设置版式改变的时候,activity不要调用onCreate方法!这就是要命的地方!?设置方法其实很简单:?1、在
文档评论(0)