在平时的开发中我们会经常用到网络图片的加载,有时候需要把网络图片的URL地址转换为Bitmap对象来供我们使用:

方法如下:

1:首先我们自定义一个接口因为牵涉到网络基本上都要使用异步加载,这里先定义一个接口回调:

//自定义一个接口
public interface HttpCallBackListener {void onFinish(Bitmap bitmap);void onError(Exception e);
}

2:牵涉到图片问题我们很自然的想到图片的大小问题,如果图片太大可能导致OOM的问题:

这里再先写一个方法来用来压缩bitmap使之符合我们的要求代码如下:

public Bitmap createBitmapThumbnail(Bitmap bitmap,boolean needRecycler){int width=bitmap.getWidth();int height=bitmap.getHeight();int newWidth=80;int newHeight=80;float scaleWidth=((float)newWidth)/width;float scaleHeight=((float)newHeight)/height;Matrix matrix=new Matrix();matrix.postScale(scaleWidth,scaleHeight);Bitmap newBitMap=Bitmap.createBitmap(bitmap,0,0,width,height,matrix,true);if(needRecycler)bitmap.recycle();return newBitMap;
}

3:最后也是最下面的最重要的方法了是用来解析网络图片URL地址并转换成bitmap对象

/*** bitmap转换* @param* @return*/
public void getImage(final String path, final HttpCallBackListener listener) {new Thread(new Runnable() {@Overridepublic void run() {URL imageUrl = null;try {imageUrl = new URL(path);} catch (MalformedURLException e) {e.printStackTrace();}try {HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();conn.setDoInput(true);conn.connect();InputStream is = conn.getInputStream();Bitmap bitmap = BitmapFactory.decodeStream(is);Bitmap bitmap1= createBitmapThumbnail(bitmap,false);if (listener != null) {listener.onFinish(bitmap1);}is.close();} catch (IOException e) {if (listener != null) {listener.onError(e);}e.printStackTrace();}}}).start();}

4:通过这样三步就基本上可以实现解决我们的问题了。

网络图片URL转化为Bitmap对象相关推荐

  1. Android 将图片网址url转化为bitmap,drawable转bitmap,file转bitmap,bitmap转file

    file转bitmap File param = new File(); Bitmap bitmap= BitmapFactory.decodeFile(param.getPath()); drawa ...

  2. android 加载网络图片,并压缩bitmap内存大小

    /*** 根据图片的url路径获得Bitmap对象, 有压缩效果的,占用内存小了,* @param url* @return*/public static Bitmap returnBitmap(St ...

  3. android bitmap对象,android 创建bitmap的多种方式

    –Bitmap代表这一张位图,BitmapDrawable里封装的图片就是一个Bitmap对象.如果要将Bitmap对象封装成BitmapDrawable对象只需要用构造方法即可. //讲bitmap ...

  4. js获取URL参数以及Json对象常用方法

    JS中JSON对象常用方法 JSON.parse('{ "name":"runoob", "alexa":10000, "site ...

  5. Object数据转化为Map对象

    使用request的getParameterMap(),将前段ajax传递的Object数据转化为Map对象 import java.util.HashMap; import java.util.It ...

  6. R语言将ggplot2对象转化为plotly对象并通过shiny将可视化结果在应用程序或者网页中显示出来

    R语言将ggplot2对象转化为plotly对象并通过shiny将可视化结果在应用程序或者网页中显示出来 目录

  7. 【Android 内存优化】Bitmap 图像尺寸缩小 ( 考虑像素密度、针对从不同像素密度资源中解码对应的 Bitmap 对象 | inDensity | inTargetDensity )

    文章目录 一.像素密度对解码图片的影响 二.不考虑像素密度会导致图片缩小尺寸不准确 三.DisplayMetrics 源码阅读.研究手机资源获取规则 四.像素密度参数设置取值 ( inDensity ...

  8. Android 通过Uri获取Bitmap对象

    1 package classExample.roseBulletEX3;import android.content.Context; import android.graphics.Bitmap; ...

  9. Android 那些你所不知道的Bitmap对象详解

    我们知道Android系统分配给每个应用程序的内存是有限的,Bitmap作为消耗内存大户,我们对Bitmap的管理稍有不当就可能引发OutOfMemoryError,而Bitmap对象在不同的Andr ...

最新文章

  1. UIAutomatorViewer、Inspector获取元素信息
  2. ios uiview 如何刷新_UIView的重绘及布局刷新
  3. WCF基础 (续 暴露元数据交换节点)
  4. [工具]sublime text2-前端开发利器
  5. SVN switch 用法详解 (ZZ)
  6. JVM方法区内存分配
  7. neo4j︱Cypher 查询语言简单案例(二)
  8. android 修改 选择壁纸来源,修改android选择壁纸来源列表
  9. ETL-informatica进阶资料整理
  10. 微信dat文件用什么软件打开方式_2020微信dat文件解密工具怎么获取软件
  11. 三极管BJT特性曲线,原理
  12. powershell免杀思路分析(过某60和某绒)
  13. 最小二乘估计与卡尔曼滤波公式推导
  14. UnityC# MD5验证
  15. 定时线程池实现请求合并
  16. 两种web crawler方案
  17. springboot 项目启动报Has been loaded by XML or SqlProvider, ignoring the injection of the SQL的错误的解决方案
  18. 脑神经科学简单介绍(小白入门)
  19. gitlab安装及配置
  20. props的基本使用和特点

热门文章

  1. 无极-怎一个“烂”字了得?
  2. 一台虚拟主机放多个网站
  3. 读书不能落下,《自卑与超越》 读后感
  4. shell 脚本中求一个字符串的长度
  5. 高德地图开发手册 php,地图控件-参考手册-地图 JS API | 高德地图API
  6. 2022年出生的虎宝宝起名字大全 尊贵大气取名
  7. 中国政府门户网站的特点
  8. linux挂载光驱io错误,求助:centos6.0 64位,不能挂载光驱(刻录机)
  9. L1-051 打折 (5 分)
  10. 优信二手车数据可视化