Android 通过Intent调用系统拍照程序出现图片太小的问题解决办法

发布时间 - 2026-01-11 02:22:18    点击率:

Android 通过Intent调用系统拍照程序出现图片太小的问题解决办法

Intent it = newIntent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(it, Activity.DEFAULT_KEYS_DIALER);

按下拍照键后,会返回到你的activity,所以你的activity要在onActivityResult方法里加一个处理,

protectedvoidonActivityResult(intrequestCode, intresultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);
   try{
     Bundle extras = data.getExtras();
     Bitmap b = (Bitmap) extras.get("data");
     take = b;
     ImageView img = (ImageView)findViewById(R.id.image);
     img.setImageBitmap(take);
   }catch(Exception e){
   }
 
}

但是这样你会发现这个bitmap尺寸太小了。明显是被压缩过了,要像返回未被压缩的照片,那么你要给调用系统拍照程序intent加上参数,指定图片输出的位置。

Intent it = newIntent("android.media.action.IMAGE_CAPTURE");
it.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(newFile(F.SD_CARD_TEMP_PHOTO_PATH)));
startActivityForResult(it, Activity.DEFAULT_KEYS_DIALER);

这样就是大图片返回了。

protectedvoidonActivityResult(intrequestCode, intresultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);
   try{
     ImageView img = (ImageView)findViewById(R.id.image);
     take = U.ResizeBitmap(U.getBitmapForFile(F.SD_CARD_TEMP_PHOTO_PATH), 640);
     img.setImageBitmap(take);
     imgflag = true;
   }catch(Exception e){
 
   }
 
}

另外注意一下,返回的那个bitmap会很大,你用完以后要把它回收掉,不然你很容易内存报oom错误

public static Bitmap ResizeBitmap(Bitmap bitmap, intnewWidth) {
 
   intwidth = bitmap.getWidth();
   intheight = bitmap.getHeight();
   floattemp = ((float) height) / ((float) width);
   intnewHeight = (int) ((newWidth) * temp);
   floatscaleWidth = ((float) newWidth) / width;
   floatscaleHeight = ((float) newHeight) / height;
   Matrix matrix = newMatrix();
   // resize the bit map
   matrix.postScale(scaleWidth, scaleHeight);
   // matrix.postRotate(45);
   Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);
   bitmap.recycle();
   return resizedBitmap;
 
}

以上就是Android 调用系统拍照出现问题的解决办法,如有疑问大家请留言讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # 通过Intent调用系统拍照程序出现图片太小的问题解决办法  # Android Intent调用 Uri的方法总结  # Android编程实现全局获取Context及使用Intent传递对象的方法详解  # Android编程中Intent实现页面跳转功能详解  # Android使用Intent获取联系人信息  # Android编程使用Intent传递图片的方法详解  # Android Studio Intent隐式启动  # 发短信  # 拨号  # 打电话  # 访问网页等实例代码  # Android Intent封装的实例详解  # 解决办法  # 里加  # 过了  # 如有  # 要在  # 要把  # 希望能  # 按下  # 要给  # 谢谢大家  # 太小  # 你很  # 你会发现  # 用完  # 未被  # 要像  # 大图片  # 太小了  # img  # ImageView 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何快速完成中国万网建站详细流程?  如何用5美元大硬盘VPS安全高效搭建个人网站?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  如何构建满足综合性能需求的优质建站方案?  简历没回改:利用AI润色让你的文字更专业  BootStrap整体框架之基础布局组件  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  JavaScript Ajax实现异步通信  详解MySQL数据库的安装与密码配置  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  javascript中的try catch异常捕获机制用法分析  Swift中switch语句区间和元组模式匹配  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel怎么调用外部API_Laravel Http Client客户端使用  西安专业网站制作公司有哪些,陕西省建行官方网站?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  如何在Windows虚拟主机上快速搭建网站?  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  Laravel如何实现API版本控制_Laravel版本化API设计方案  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Python文本处理实践_日志清洗解析【指导】  如何破解联通资金短缺导致的基站建设难题?  如何在阿里云部署织梦网站?  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何快速查询网址的建站时间与历史轨迹?  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  PHP正则匹配日期和时间(时间戳转换)的实例代码  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel distinct去重查询_Laravel Eloquent去重方法  JS中对数组元素进行增删改移的方法总结  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  EditPlus中的正则表达式 实战(4)  青岛网站建设如何选择本地服务器?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何快速搭建高效可靠的建站解决方案?