位置: 编程技术 - 正文

Android 从网络下载图片OOM(安卓数据网络)

编辑:rootadmin

推荐整理分享Android 从网络下载图片OOM(安卓数据网络),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:安卓数据网络,android获取网速,android 网络连接,android网络下载,android 网络连接,android网络下载,android 网络连接,android获取网络数据,内容如对您有帮助,希望把文章链接给更多的朋友!

最近有个需求,从网络下载图片,但不能使用imageloader,因为iimageloader使用缓存机制,同一路径下的图片如果跟换怎不会刷新替换。所以必须自己下载解析。但遇到OOM的问题,如果用BitmapFactory.decodeStream 则会返回null,所以我采用的办法是先将图片下载下来,再计算图片宽高,最后绑定图片后将图片删除的办法。话不多说,先上代码

//path为图片的网络路径

private Bitmap getHttpBitmap(String path) {try {URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout();conn.setRequestMethod("GET");if (conn.getResponseCode() == ) {InputStream is = conn.getInputStream();//获取图片路径String[] names = path.split("/");String name = names[names.length-1];//保存图片到本地FileOutputStream outStream = new FileOutputStream(new File(Environment.getExternalStorageDirectory() &#; "/"&#; name));byte[] buffer = new byte[];int len = -1;while ((len = is.read(buffer)) != -1) {outStream.write(buffer, 0, len);}outStream.close();//获取图片宽高BitmapFactory.Options opts = new BitmapFactory.Options();opts.inJustDecodeBounds = true;BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() &#; "/"&#; name , opts);int imageWidth = opts.outWidth;int imageHeight = opts.outHeight;Log.i("imageWidth", String.valueOf(imageWidth));Log.i("imageHeight", String.valueOf(imageHeight));//计算缩放比例,此处为默认&#;,也可以获取控件宽高进行计算int widthscale = imageWidth / ;int heightscale = imageHeight / ;int scale = widthscale > heightscale ? widthscale: heightscale;Log.i("scale", String.valueOf(scale));//开始真正获取图片,进行压缩后的图片opts.inJustDecodeBounds = false;opts.inSampleSize = scale;localerweima =Environment.getExternalStorageDirectory() &#; "/"&#; name;Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() &#; "/"&#; name , opts);Log.i("bitmap1", String.valueOf(bitmap));is.close();Message msg = Message.obtain();msg.what = 1;msg.obj = bitmap;handler.sendMessage(msg);return bitmap;}return null;} catch (Exception e) {Log.i("e.toString();", e.toString());return null;}}

Android 从网络下载图片OOM(安卓数据网络)

//这是handler绑定图片并删除文件的操作

Message msg = new Message();Handler handler = new Handler() {public void handleMessage(Message msg) {switch (msg.what) {case 1: // 二维码Bitmap bm = (Bitmap) msg.obj;tv_erweima.setImageBitmap(bm);new File(localerweima).delete(); //每次绑定完成后删除本地文件break;default:break;}};};

Android5.0网络之socket接口的改变 socket是网络编程的基础,Android中socket接口定义在bionic里面,Android5.0后,为了更好使用fwmark,用netd中的函数实现部分代替了bionic的socket实现。上代码bioni

Android学习【RelativeLayout控件设置宽 高】 privateRelativeLayoutrelativeLayout;relativeLayout=(RelativeLayout)findViewById(R.id.relativeLayout);player_View.getLayoutParams().height=;player_View.getLayoutParams().width=;

android 实现加载动画对话框 先来两张效果图自定义对话框:publicclassLoadingProgressDialogextendsProgressDialog{privateAnimationDrawablemAnimation;privateContextmContext;privateImageViewmImageView;privateStringmLoadi

标签: 安卓数据网络

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

上一篇:Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent错误的记录。

下一篇:Android5.0网络之socket接口的改变(android系统联网)

  • 销售收入怎么计算销项税额
  • 外购商品赠送怎么做账
  • 资产负债表从哪里打出来的
  • 其他综合收益是什么类科目
  • 农民工工资保证金管理暂行办法
  • 营业税金及附加借贷方向
  • 电脑的折旧年限是多久
  • 外经证提交一般要多久可以通过
  • 已认证的进项税额转出如何操作
  • 进口缴纳关税
  • 低值易耗品报废时
  • 应付账款不付处理分录如何写?
  • 固定资产的计税基础6种情况
  • 汇总缴纳增值税附加税如何缴纳
  • 小规模纳税人2018
  • 企业所得税应纳税所得额包括什么
  • 微信收付款认证
  • 买卖交什么税
  • 财产清查的会计分录
  • 小规模纳税人可以开专票吗
  • 软件开发过程中必须伴有质量保证活动
  • 外账进销存单据是怎么弄的?
  • win11专业版和家庭中文版区别
  • 废品回收企业回收的废品都是怎么处理
  • 苹果Mac系统怎么切换输入法
  • 深度学习模型精度fp16和fp32
  • 购买财务软件会有操作流程吗
  • 纳库鲁的念能力
  • 电子承兑汇票支付信用查询是什么意思
  • 个税收入额是什么意思
  • ChatGPT的火爆出圈,你对它有几分了解?
  • pytorch csdn
  • ajax调用php接口
  • 利息发票可以抵扣吗
  • golang eventbus
  • 抽烟罚款会计分录
  • sql语句字符串比较大小
  • sqlserver怎么把数据库导出来
  • PostgreSQL中使用dblink实现跨库查询的方法
  • 蔬菜开发票到哪里开呢?
  • 办公室装修费多少钱可以一次性入账
  • 金蝶如何新增客户
  • 办公室装修用什么材料便宜
  • 无形资产未确认融资费用例题
  • 无偿捐赠产品会计分录
  • 购入投资性房地产支付的相关税费
  • 什么叫零售差额退税
  • 银行流水账单怎么删
  • 小企业成本核算方法怎么填
  • 企业购入树木花草如何入账
  • sqlserver (parse name)字符串截取的方法
  • mysql导入sql脚本指定编码
  • sqlserver的case 用法
  • win7登录设置
  • win7显示无线网络未连接
  • 电脑开机显示xp后无反应
  • 预览pdf文件
  • thinkpadx230i5
  • win10不能显示桌面
  • linux ./ 命令
  • windows8whql
  • linux带桌面
  • frameworkservic.exe是什么进程 有什么作用 frameworkservic进程查询
  • ttf文件安装到电脑
  • 电脑win7不能用怎么办
  • microsoft build
  • 打开应用通知栏
  • [置顶]公主大人接下来是拷问时间31
  • Bullet之了解Force Torque Impulse
  • js中断点用法
  • 安装两个linux
  • nodejs一键安装
  • linux lvm配置
  • 工作笔记范文100篇简短
  • #androidsdk文件夹可以删除吗
  • js获取鼠标点击位置
  • First class: UI design for Android
  • 汕头市国税局公务员待遇
  • 展示板效果图
  • 税务检查的程序
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设