网络图片URL转化为Bitmap对象
在平时的开发中我们会经常用到网络图片的加载,有时候需要把网络图片的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对象相关推荐
- Android 将图片网址url转化为bitmap,drawable转bitmap,file转bitmap,bitmap转file
file转bitmap File param = new File(); Bitmap bitmap= BitmapFactory.decodeFile(param.getPath()); drawa ...
- android 加载网络图片,并压缩bitmap内存大小
/*** 根据图片的url路径获得Bitmap对象, 有压缩效果的,占用内存小了,* @param url* @return*/public static Bitmap returnBitmap(St ...
- android bitmap对象,android 创建bitmap的多种方式
–Bitmap代表这一张位图,BitmapDrawable里封装的图片就是一个Bitmap对象.如果要将Bitmap对象封装成BitmapDrawable对象只需要用构造方法即可. //讲bitmap ...
- js获取URL参数以及Json对象常用方法
JS中JSON对象常用方法 JSON.parse('{ "name":"runoob", "alexa":10000, "site ...
- Object数据转化为Map对象
使用request的getParameterMap(),将前段ajax传递的Object数据转化为Map对象 import java.util.HashMap; import java.util.It ...
- R语言将ggplot2对象转化为plotly对象并通过shiny将可视化结果在应用程序或者网页中显示出来
R语言将ggplot2对象转化为plotly对象并通过shiny将可视化结果在应用程序或者网页中显示出来 目录
- 【Android 内存优化】Bitmap 图像尺寸缩小 ( 考虑像素密度、针对从不同像素密度资源中解码对应的 Bitmap 对象 | inDensity | inTargetDensity )
文章目录 一.像素密度对解码图片的影响 二.不考虑像素密度会导致图片缩小尺寸不准确 三.DisplayMetrics 源码阅读.研究手机资源获取规则 四.像素密度参数设置取值 ( inDensity ...
- Android 通过Uri获取Bitmap对象
1 package classExample.roseBulletEX3;import android.content.Context; import android.graphics.Bitmap; ...
- Android 那些你所不知道的Bitmap对象详解
我们知道Android系统分配给每个应用程序的内存是有限的,Bitmap作为消耗内存大户,我们对Bitmap的管理稍有不当就可能引发OutOfMemoryError,而Bitmap对象在不同的Andr ...
最新文章
- 2022-2028年中国安防行业研究及前瞻分析报告
- java 100以内冒泡算法_Java俩种形式实现冒泡排序
- Java后台 自动 翻页查询
- js 缺少标识符、字符串或数字
- dwz ajax session超时跳转登录页(struts2自定义拦截器)
- DP(优化) UVALive 6073 Math Magic
- 在别的函数或者线程函数里使用 PostMessage
- 蒙提霍尔问题(三门问题,概率论)C语言验证
- 《机器学习》周志华note2
- 面试简历上的项目经验
- LM2586S 应用笔记
- Oracle中打印99乘法表的13种方法
- 香港渣打银行开户价格是多少?
- 记一次企业邮官网SEO优化
- lofter 爬虫_Python网络爬虫1 - 爬取网易LOFTER图片
- oracle导出辅助账明细,AO2011导入国库集中支付系统3.0的辅助账资料.doc
- 计算机编程专业有哪些好的大学?
- 由高斯投影坐标反算成经纬度
- Navicat设置表的外键
- STM32之USART:RXD和TXD管脚互换、接收和发送的电平极性反转、支持数据高位与低位反序发送或接收