使用Volley加载图片

Volley是什么?Android平台网络通信库,2013 Google I/O 大会发布的Android平台网络通讯库,旨在帮助开发者实现更快速,简单,健壮的网络通讯。支持网络图片的缓存加载功能。适用场景:数据量不大,但通讯频繁的场景。

官网介绍:

https://android.googlesource.com/platform/frameworks/volley

volley的功能:1、JSON字符串请求、图片加载(异步的方式) 2、网络请求的排序和优先级处理  3、缓存  4、多级别取消请求 5、与Activity生命周期联动

下面举个小的demo,来实现Volley的图片加载(分别包括ImageView和NetworkImageView两个控件)

先要确定导入了volley.jar包

布局文件main_activity.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
    android:orientation="vertical" >



<ImageView 
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<com.android.volley.toolbox.NetworkImageView
android:id="@+id/iv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>


MainActivity.java:

public class MainActivity extends Activity {
        private ImageView img;
private NetworkImageView iv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView) findViewById(R.id.img);
iv2 = (NetworkImageView) findViewById(R.id.iv2);
loadImage();// ImageView图片加载方法
loadNetworkImage();// NetworkImageView图片加载方法
}


// http://10.10.5.174/cj.jpeg 10.10.5.174是我本机ip cj.jpeg是放在服务器下的一张图片
public void loadImage() {
String imaurl = "http://10.10.5.174/cj.jpeg";
RequestQueue queue = Volley.newRequestQueue(this);
final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>(
20);
ImageCache imageCache = new ImageCache() {
// 图片放入缓存
@Override
public void putBitmap(String key, Bitmap value) {
lruCache.put(key, value);
}
// 得到图片
@Override
public Bitmap getBitmap(String key) {
return lruCache.get(key);
}
};
ImageLoader imageLoader = new ImageLoader(queue, imageCache); // 创建加载器
ImageListener listener = imageLoader.getImageListener(img,
R.drawable.ic_launcher, R.drawable.ic_launcher);     // 监听器 参数分别为:ImageView、加载默认的图片、若加载失败的图片
imageLoader.get(imaurl, listener);// 完成图片加载 参数分别为:图片url、监听事件
}
// 类似如上方法
public void loadNetworkImage() {
String imaurl = "http://10.10.5.174/cj.jpeg";
RequestQueue queue = Volley.newRequestQueue(this);
final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>(
20);
ImageCache imageCache = new ImageCache() {
@Override
public void putBitmap(String key, Bitmap value) {
lruCache.put(key, value);
}


@Override
public Bitmap getBitmap(String key) {
return lruCache.get(key);
}
};
ImageLoader imageLoader = new ImageLoader(queue, imageCache);
iv2.setTag("url"); // 设置标签
iv2.setImageUrl(imaurl, imageLoader);
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值