位置: 编程技术 - 正文

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系统联网)

  • 用友删除凭证后期初余额不对
  • 减税后含税单价计算公式
  • 增值税 不含税
  • 旅游业发票税率是多少
  • 以前年度损益调整借贷方向
  • 境外投资子公司审计报告人民币汇率
  • 有限合伙企业合伙人责任
  • 车辆固定资产清理
  • 餐费专票认证了怎么办
  • 发票作废税金怎么算
  • 增值税减免税款科目怎么结转
  • 个人所得税特殊计税方法
  • 企业进行破产清算时,适用于账面价值与实际价值
  • 收购发票使用范围税收规定
  • 生产企业出口退税申报系统详细操作流程
  • 现金折扣通过财务费用核算
  • 公益性捐赠所得税处理
  • 库管和车间工人哪个好
  • 海尔笔记本最新款
  • 企业债券和公司债券
  • 任务栏音量图标点击无反应
  • linux中qq怎么添加快捷键启动功能?
  • linux device drivers
  • PHP:ignore_user_abort()的用法_misc函数
  • 药品生产企业应建立
  • 出口退税是怎么个流程
  • php简单的接口编写示例
  • 低代码框架开发
  • 2023年网络安全专题教育
  • 装系统如何不安装自带软件
  • head命令中表示输出文件前5行的参数是
  • 汽车以旧换新怎么操作
  • 利息收入的会计科目怎么做
  • 银行罚息是财务收入吗
  • 企业做账会计分录流程
  • 工会经费缴纳方式的文件
  • 新收入准则修订的目的
  • wordpress如何删除导入的主题
  • mongodb $nin
  • 织梦网站怎么改logo
  • 无法收回的房租押金出什么会计科目
  • 年底了,你们公司年会干点啥都?
  • 微信小程序 滚动 变色
  • 收付实现制的适用范围
  • 专款专用需要缴税吗
  • 库存商品入库的会计分录怎么写
  • 存货跌价准备什么科目
  • 进项税金抵扣
  • 收到房租的租金怎么做账
  • 股息分红要交多少税
  • 出口退税企业退税流程
  • 不动产发票开具规则
  • 小规模纳税人购进税控机的税如何抵扣
  • 销项负数发票是红字发票吗
  • 开一般户需要什么理由
  • sqlserver 自动备份所有数据库的SQL
  • win7控制台怎么打开
  • 智能abc不能输入汉字
  • linux如何替换
  • 64位VMware虚拟机系统打不开怎么办?
  • win7系统锁屏密码
  • linux中的文件
  • oracle linux6.9
  • OS X 10.10 Yosemite的新特性与iOS联系更紧密
  • linux mds
  • xp创建VPN连接图文教程
  • linux启动的基本步骤
  • winpe 系统还原
  • linux入门很简单
  • 安卓图库权限
  • linux 常用命令大全及其详解
  • node.js快速入门
  • nodejs ejs
  • unity引擎叫什么
  • android英语
  • 工具类的作用
  • js正则表达式验证姓名
  • 余额宝出现问题怎么办?
  • 北京市国家税务局发票查询
  • 江苏国税电子网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设