在平时的开发中我们会经常用到网络图片的加载,有时候需要把网络图片的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. 2022-2028年中国安防行业研究及前瞻分析报告
  2. java 100以内冒泡算法_Java俩种形式实现冒泡排序
  3. Java后台 自动 翻页查询
  4. js 缺少标识符、字符串或数字
  5. dwz ajax session超时跳转登录页(struts2自定义拦截器)
  6. DP(优化) UVALive 6073 Math Magic
  7. 在别的函数或者线程函数里使用 PostMessage
  8. 蒙提霍尔问题(三门问题,概率论)C语言验证
  9. 《机器学习》周志华note2
  10. 面试简历上的项目经验
  11. LM2586S 应用笔记
  12. Oracle中打印99乘法表的13种方法
  13. 香港渣打银行开户价格是多少?
  14. 记一次企业邮官网SEO优化
  15. lofter 爬虫_Python网络爬虫1 - 爬取网易LOFTER图片
  16. oracle导出辅助账明细,AO2011导入国库集中支付系统3.0的辅助账资料.doc
  17. 计算机编程专业有哪些好的大学?
  18. 由高斯投影坐标反算成经纬度
  19. Navicat设置表的外键
  20. STM32之USART:RXD和TXD管脚互换、接收和发送的电平极性反转、支持数据高位与低位反序发送或接收

热门文章

  1. 小熊个人资料_小熊了个人资料照片 WT-没有小熊了原名叫什么
  2. 构建LVS负载均衡群集——地址转换模式(LVS-NAT)
  3. 专业显卡深度学习_学习深度学习,如何选购显卡?
  4. 可用!三行代码高仿高德地图三段式抽屉效果
  5. FPGA基础知识----第二章 FPGA 开发流程
  6. HDFS分布式文件系统的常用命令行操作
  7. BEIT: BERT Pre-Training of Image Transformers论文解读
  8. 何为分布式(Distributed)?
  9. 80后大学生在沪创业出奇招:扮小丑送快递
  10. 证券基础知识——一手代表多少数量?