位置: 编程技术 - 正文

android调用系统相机、调用系统相册,调用系统图片裁剪报错的解决方案(Android调用系统摄像头)

编辑:rootadmin

推荐整理分享android调用系统相机、调用系统相册,调用系统图片裁剪报错的解决方案(Android调用系统摄像头),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Android调用系统分享,Android调用系统分享,Android调用系统摄像头,Android调用系统打开文件,Android调用系统看图,Android调用系统摄像头,Android调用系统相机,android调用系统文件管理器,内容如对您有帮助,希望把文章链接给更多的朋友!

最近在项目中用到了照相和相册取图剪裁上传头像,就在网上逛了逛,基本都是千篇一律,就弄下来用了用,没想到的是各种各样的奇葩问题就出现了。先给大家看看代码问题慢慢来解决

这是调用相机

[java] view plaincopypublic static File getImageFromCamer(Context context, File cameraFile, int REQUE_CODE_CAMERA, Intent intent) { intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); File fileDir = HelpUtil.getFile(context, "/Tour/user_photos"); cameraFile = new File(fileDir.getAbsoluteFile() &#; "/" &#; System.currentTimeMillis() &#; ".jpg"); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(cameraFile)); ((Activity) context).startActivityForResult(intent, REQUE_CODE_CAMERA); return cameraFile; } 在这里我返回了一个file对象,这是应为项目中需要,大家可以不必真写,直接传一个Uri对象过来就好了

下面是调用相册

[java] view plaincopypublic static void getImageFromPhoto(Context context, int REQUE_CODE_PHOTO) { Intent intent = new Intent(Intent.ACTION_PICK, null); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); ((Activity) context).startActivityForResult(intent, REQUE_CODE_PHOTO); } 当然接下来是调用Activity的OnActivityResult了[java] view plaincopy@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case ConstantUtil.REQUE_CODE_CAMERA: uri = Uri.fromFile(cameraFile); PhotoUtil.startPhotoZoom(context, uri, ConstantUtil.REQUE_CODE_CROP); break; case ConstantUtil.REQUE_CODE_PHOTO: if (null != data) {//为了取消选取不报空指针用的 uri = data.getData(); PhotoUtil.startPhotoZoom(context, uri, ConstantUtil.REQUE_CODE_CROP); } break; case ConstantUtil.REQUE_CODE_CROP: if(uri==null){ break; } cropBitmap=HelpUtil.getBitmapFromUri(uri,context); if (cropBitmap != null) { iv_headphoto.setImageBitmap(cropBitmap); baos = new ByteArrayOutputStream(); cropBitmap.compress(Bitmap.CompressFormat.JPEG, , baos); headPicString = new String(Base.encode( baos.toByteArray(), 0)); UploadPic(headPicString); } break; default: break; } } 当然还有大家关心的剪切[java] view plaincopypublic static void startPhotoZoom(Context context, Uri uri, int REQUE_CODE_CROP) { int dp = ; Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); // 下面这个crop=true是设置在开启的Intent中设置显示的VIEW可裁剪 intent.putExtra("crop", "true"); intent.putExtra("scale", true);// 去黑边 intent.putExtra("scaleUpIfNeeded", true);// 去黑边 // aspectX aspectY 是宽高的比例 intent.putExtra("aspectX", 1);//输出是X方向的比例 intent.putExtra("aspectY", 1); // outputX outputY 是裁剪图片宽高,切忌不要再改动下列数字,会卡死 intent.putExtra("outputX", dp);//输出X方向的像素 intent.putExtra("outputY", dp); intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); intent.putExtra("noFaceDetection", true); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); intent.putExtra("return-data", false);//设置为不返回数据 ((Activity) context).startActivityForResult(intent, REQUE_CODE_CROP); } android调用系统相机、调用系统相册,调用系统图片裁剪报错的解决方案(Android调用系统摄像头)

在很多博客中都把“return-data”设置为了true然后在onActivityResult中通过data.getParcelableExtra("data")来获取数据,不过这样的话dp这个变量的&#;就不能太大了,不然你的程序就挂了。这里也就是我遇到问题的地方了,在大多数高配手机上这样用是没有问题的,不过很多低配手机就有点hold不住了,直接就异常了,包括我们的国产神机米3也没能hold住,所以我建议大家不要通过return data 大数据,小数据还是没有问题的,说以我们在剪切图片的时候就尽量使用Uri这个东东来帮助我们。

下面是我们进行剪裁用到的一些参数

Exta Options Table for image/* crop:

SetExtraDataTypeDescriptioncropStringSignals the crop featureaspectXintAspect RatioaspectYintAspect RatiooutputXintwidth of output created from this IntentoutputYintwidth of output created from this Intentscalebooleanshould it scalereturn-databooleanReturn the bitmap with Action=inline-data by using the datadataParcelableBitmap to process, you may provide it a bitmap (not tested)circleCropStringif this string is not null, it will provide some circular crMediaStore.EXTRA_OUTPUT ("output")URISet this URi to a see example code

最后把通过Uri获得bitmap的方法给大家贴上

[java] view plaincopypublic static Bitmap getBitmapFromUri(Uri uri,Context mContext) { try { // 读取uri所在的图片 Bitmap bitmap = MediaStore.Images.Media.getBitmap(mContext.getContentResolver(), uri); return bitmap; } catch (Exception e) { e.printStackTrace(); return null; } } 转载请指明出处:

文章标题 Mac下idea配置Android_SDK配置0、首页下载好Android_SDK,解压到本地某个目录下。建议是单独指定一个目录。1、下载配置Android_SDK。启动Terminal终端工具,进入

[置顶] [Android Studio 权威教程]AS添加第三方库的6种方式(Jar,module,so等) 前几篇我们讲过了AS3种添加插件的方式,以及最常用的一些快捷键的用法,这篇我们讲讲添加第三方库的方法,我这里讲的是最实用、最简单也是最有

Android 个小知识 Android个小知识挺不错的总结,有很多工作中都会用到1、判断sd卡是否存在booleansdCardExist=Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)

标签: Android调用系统摄像头

本文链接地址:https://www.jiuchutong.com/biancheng/385146.html 转载请保留说明!

上一篇:'d:skin' 开头的无效内容。此处不应含有子元素。

下一篇:文章标题(文章标题的作用有哪些?)

  • 如何通过Linux命令行使用和运行PHP脚本(linux命令行怎么用)

    如何通过Linux命令行使用和运行PHP脚本(linux命令行怎么用)

  • 详解SQL Server的聚焦过滤索引(sql server基本知识)

    SQL Server对创建索引大小有限制,最大是字节,上述直接写的VARCHAR(MAX),所以会出错,切记,切记。

    此时我们在主键上创建非聚集索引,我们在主键RowID上创建一个过滤索引且SomeValue = 'JeffckyWang" class="img-responsive" alt="详解SQL Server的聚焦过滤索引(sql server基本知识)">

    详解SQL Server的聚焦过滤索引(sql server基本知识)

  • Extjs ajax同步请求时post方式参数发送方式

    Extjs ajax同步请求时post方式参数发送方式

  • 8个实用的Shell脚本分享(常见的shell脚本)

    8个实用的Shell脚本分享(常见的shell脚本)

  • JavaScript电子时钟倒计时第二款

    JavaScript电子时钟倒计时第二款

  • 应交代扣利息税
  • 建筑劳务公司怎么做账
  • 铜川缴纳房屋契税怎么算
  • 劳保用品发放制度文件
  • 员工宿舍买热水器计入什么费用
  • 企业入库流程图
  • 应交税金借方余额代表什么
  • 安装服务费发票需要备注地址吗
  • 台湾企业不能在大陆或香港上市吗
  • 有限合伙企业如何分红
  • 企业转让未入账怎么办
  • 收到基金计入什么科目
  • 没进项发票要交多少税
  • 2020年资金账簿印花税最新规定
  • 税收强制执行措施包括哪些
  • 一般纳税人出售不动产增值税税率是多少
  • 财产转让所得个人所得税纳税地点
  • 个人购买余额宝安全吗?
  • 机票的进项
  • 委托贷款是流动资金贷款吗
  • TP-Link TL-WR841N管理员密码(初始密码)是多少
  • 大型机械拆装
  • 怎么看iPhone电池温度
  • php接收数据的方法
  • 厂房修缮
  • 其他应付款很多
  • 哪家银行理财产品收益率高
  • 存货包括其他业务成本吗
  • 工程材料费发票没拿到是否能预提费用
  • php traits
  • face_recognition库采用了什么算法
  • 借款利息收入开票
  • 公司出资认缴和实缴的区别
  • 批处理命令在windows操作中的典型应用
  • python rem
  • 进口增值税完税证明网哪里打印的
  • mysql服务器硬件配置
  • 公司的货款直接转给股东个人了,该怎么转到公司
  • 做模具怎么找客户
  • 小企业如何进行内部创新
  • 银行卡被误扣多少钱
  • 房地产企业取得政府补助
  • 居民企业只就其境内全部所得纳税
  • 税务局退还的三险是什么
  • 购买理财收入计入什么科目
  • 日常费用报销管理制度
  • 广告制作费属于现代服务吗
  • 公司向股东借款多久必须归还
  • 事业单位私车公用如何处罚
  • windows内存诊断工具检测到硬件问题怎么办
  • windows7如何获得正版
  • Win10预览版拆弹
  • 修改文件软件免费下载
  • windrv.exe
  • linux忘记root密码怎么办
  • windows server 2012 r2关机在哪
  • win7win8.1win10哪个好
  • windows mobile10
  • win10激活过期有什么影响吗
  • unity控制
  • javascript事件绑定学习要点
  • node搭建博客
  • android线程间通信的几种方法
  • python 管理内存
  • 简易bmp图片读取软件
  • 如何自动更正
  • ADB (Android Debug Bridge)常用命令
  • python中的is和==的区别
  • js中递归是什么意思
  • nodejs xhr
  • angularjs教程
  • js响应事件的过程
  • javascript页面
  • 企业环境信用等级在哪里查询
  • 养殖业免税用报税吗
  • 互城通怎么用微信充值
  • 增值电信发票
  • weverse登录不了
  • 安置残疾人即征即退
  • 代理记账公司里的公司文件盒书写样式图片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设