使用volley加载网络图片
2015-08-13 10:47
639 查看
1、导入volley jar包
2、创建队列类
public class MyApplication extends Application{
public static RequestQueue queues;
@Override
public void onCreate() {
super.onCreate();
queues= Volley.newRequestQueue(getApplicationContext());
}
public static RequestQueue getHttpQueens(){
return queues;
}
}
3、在manifest里注册
<application
android:name=".MyApplication"
4、三种方式加载网络图片
1)ImageRequest 直接加载
private void showImage(){
String url="https://www.baidu.com/img/bdlogo.png";
/*maxWidth,maxHeight都设为0的话是加载原图大小 都设为100 的话就是按照比例压缩
decodeConfig:加载图片的格式
* */
ImageRequest imageRequest=new ImageRequest(url,new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap bitmap) {
iv_img.setImageBitmap(bitmap);
}
},0,0, Bitmap.Config.RGB_565,new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError) {
iv_img.setBackgroundResource(R.mipmap.ic_launcher);
}
});
MyApplication.getHttpQueens().add(imageRequest);
}
2)、利用ImageLoader、LruCache缓存加载图片
缓存类:
public class BitmapCache implements ImageLoader.ImageCache {
public LruCache<String,Bitmap> cache;
public int max=10*1024*1024;//定义缓存最大空间是10M,如果当前内存的缓存超过10M,会自动回收
public BitmapCache(){
cache=new LruCache<String,Bitmap>(max){
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes()*value.getHeight();
}
};
}
@Override
public Bitmap getBitmap(String s) {
return cache.get(s);
}
@Override
public void putBitmap(String s, Bitmap bitmap) {
//将图片放入缓存
cache.put(s,bitmap);
}
}
显示:
private void showImageCache(){
String url="https://www.baidu.com/img/bdlogo.png";
ImageLoader imageLoader=new ImageLoader(MyApplication.getHttpQueens(),new BitmapCache());
//监听
ImageLoader.ImageListener listener=ImageLoader.getImageListener(iv_img,R.mipmap.ic_launcher,R.mipmap.ic_launcher);
imageLoader.get(url,listener);
}
3)//使用NetworkImageView加载网络图片
布局:
下载地址:http://download.csdn.net/detail/xiaruoli89/8999253
2、创建队列类
public class MyApplication extends Application{
public static RequestQueue queues;
@Override
public void onCreate() {
super.onCreate();
queues= Volley.newRequestQueue(getApplicationContext());
}
public static RequestQueue getHttpQueens(){
return queues;
}
}
3、在manifest里注册
<application
android:name=".MyApplication"
4、三种方式加载网络图片
1)ImageRequest 直接加载
private void showImage(){
String url="https://www.baidu.com/img/bdlogo.png";
/*maxWidth,maxHeight都设为0的话是加载原图大小 都设为100 的话就是按照比例压缩
decodeConfig:加载图片的格式
* */
ImageRequest imageRequest=new ImageRequest(url,new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap bitmap) {
iv_img.setImageBitmap(bitmap);
}
},0,0, Bitmap.Config.RGB_565,new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError) {
iv_img.setBackgroundResource(R.mipmap.ic_launcher);
}
});
MyApplication.getHttpQueens().add(imageRequest);
}
2)、利用ImageLoader、LruCache缓存加载图片
缓存类:
public class BitmapCache implements ImageLoader.ImageCache {
public LruCache<String,Bitmap> cache;
public int max=10*1024*1024;//定义缓存最大空间是10M,如果当前内存的缓存超过10M,会自动回收
public BitmapCache(){
cache=new LruCache<String,Bitmap>(max){
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes()*value.getHeight();
}
};
}
@Override
public Bitmap getBitmap(String s) {
return cache.get(s);
}
@Override
public void putBitmap(String s, Bitmap bitmap) {
//将图片放入缓存
cache.put(s,bitmap);
}
}
显示:
private void showImageCache(){
String url="https://www.baidu.com/img/bdlogo.png";
ImageLoader imageLoader=new ImageLoader(MyApplication.getHttpQueens(),new BitmapCache());
//监听
ImageLoader.ImageListener listener=ImageLoader.getImageListener(iv_img,R.mipmap.ic_launcher,R.mipmap.ic_launcher);
imageLoader.get(url,listener);
}
3)//使用NetworkImageView加载网络图片
布局:
下载地址:http://download.csdn.net/detail/xiaruoli89/8999253
相关文章推荐
- openwrt网络配置(有线,无线)
- java socket初步学习一 ( tcp)
- JAVA 网络编程-udp , url
- 关于Linux 网络编程bind()和connect()的理解
- 网络编程复习_Exp1
- Socket监听 /TcpListener监听/HttpListener 监听
- java调用http接口
- tcpdump工具的常用方式(持续更新。。。。)
- JAVA 网络编程 - TCP
- UNIX网络编程卷一:第十六章 非阻塞I/O
- 常见HTTP状态码
- 文章标题
- 网络连接之Http及异步操作AsyncTask
- MFC自动获取网络地址函数实现----广播地址,网关,子网掩码
- 网络基本功(一):细说网络传输
- TCP协议与UDP协议的区别
- 使用NSJSONSerialization解析从网络中获取的数据
- android网络下载图片并且显示在图库中
- Win10中WiFi Sense透露隐私怎么关闭无线网络密码共享?
- 在android下出现乱码的问题(在网络中传输和获取数据时)