位置: 编程技术 - 正文

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

  • 什么情况下个人资产会被冻结
  • 向投资者支付的股息不得在计算应纳税所得额时扣除
  • 工会经费与残保金的取数是一致吗
  • 会计分录多借多贷是什么意思
  • 党建经费可以用来干什么
  • 普通发票作废要交税吗
  • 如何从对公账户的资金情况来确定案件,发现犯罪嫌疑人?
  • 法定盈余公积可以分配给股东吗
  • 完工百分比法完工进度怎么算
  • 残保金在职职工人数临时工算吗
  • 非营利组织可以开发票吗
  • 预收账款开票怎么做账
  • 结转销项税额至未交增值税的结转系数
  • 城建税免征怎么记账
  • 工资薪金所得适用的税率是
  • 劳务派遣可以开专票吗
  • 退税勾选的发票账务处理
  • 出售自建厂房的税率
  • 加油款可以开专用发票吗
  • 增值税专用发票怎么开
  • 增值税暂估
  • 资产负债表是一年一次吗
  • 行政单位发票报销的签字程序
  • mac如何连接2个airpods
  • windows server 2003 r2 序列号
  • 房屋及建筑物改造费用
  • 失业保险稳岗补贴是什么意思
  • oeloader.exe - oeloader是什么进程 有什么用
  • 土地增值税清算管理规程
  • 圣托里尼岛游玩攻略
  • 会计核算中 制度有哪些
  • 阿尔莫什
  • smarty模板注入
  • php取mysql查询单条数据
  • vue循环数组渲染列表
  • 支付职工教育经费
  • vue uncaught typeerror
  • javascript怎么用
  • 总结js中常用的字符
  • 农村扶贫入股分红会计分录
  • 11个点的是什么星座
  • 购入的机器设备
  • 上月购进固定资产次月退货已开具红字发票如何入账
  • 公司减持股份是利好还是利空
  • 负数红字发票如何申报
  • 织梦如何添加浮动广告
  • 关联债资比例是什么意思
  • db2入门
  • 经济作物评估标准
  • 红冲去年费用会计分录
  • 销售发生亏损如何记账
  • 关于母子公司的关系的表述,正确的是( )
  • 坏账准备的核算公式
  • 银行电子汇票到期后多久到账
  • 用友u8怎样查询上个月凭证
  • 金蝶主要业务及软件产品
  • 锅炉设备销售
  • 为什么总成本费用不变
  • 会计学主要是学什么
  • SQLServer EVENTDATA()函数来获取DDL 触发器信息
  • sql中函数 判断是否是null
  • mysql 行转列 列转行
  • u盘怎么设置速度快
  • win8如何安装win10系统
  • Linux>=2.6.39 Mempodipper本地提权分析和EXP利用(CVE-2012-0056)
  • 如何彻底解决win10自动重启
  • win命令行杀死一个程序
  • mfc界面布局
  • CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放
  • 在解决ul居中问题时想到的几点
  • 微软早在1985年便首次使用了安卓上饱受争议的汉堡按钮
  • java获取两个日期间的所有月份
  • unity自动生成
  • 生成0-100的随机数,直到生成88为止,停止循环
  • android获取手机的基本信息
  • Warning: Build-tool 17.0.0 is missing AAPT at F:adt-bundle-windows-x86sdk
  • 关于农村养殖和环保规定解资料
  • 增值税是要上交给国家的吗?
  • 土地分割抵押 如何实现抵押权
  • 实名办税的法律依据
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设