public class VolleyApi{
private Context context;
private View view;
//步骤1:创建Volley的网络请求队列
RequestQueue mQueue;
//定义请求的URL
private String url = "http://ditu.amap.com/service/regeo?longitude=121.04925573429551&latitude=31.315590522490712";
public VolleyApi(Context context){
this.context = context;
mQueue = Volley.newRequestQueue(context);
}
public VolleyApi(View context){
this.view = context;
mQueue = Volley.newRequestQueue(view.getContext());
}
/*
*ImageRequest不提交参数个服务器
*/
public void getImageData(){
/*
*步骤2:创建 ImageRequest请求不给服务器提交参数
*/
ImageRequest imageRequest = new ImageRequest(url, new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap bitmap) {
ImageView imageView = (ImageView) View.inflate(context,R.layout.activity_main,null)
.findViewById(R.id.imageview);
imageView.setImageBitmap(bitmap);
}
}, 100, 100, Bitmap.Config.RGB_565, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
ImageView imageView = (ImageView) View.inflate(context,R.layout.activity_main,null)
.findViewById(R.id.imageview);
imageView.setImageResource(R.mipmap.ic_launcher);
}
});
//步骤3:<span style="font-family: Arial, Helvetica, sans-serif;">ImageRequest </span>加入到队列中
mQueue.add(imageRequest);
}
/*
*ImageRequest提交参数个服务器
*/
public void getAndPutImageData(){
/*
*步骤2:创建 ImageRequest请求不给服务器提交参数
*/
ImageRequest imageRequest = new ImageRequest("https://img-my.csdn.net/uploads/201407/17/1405567749_8669.jpg", new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap bitmap) {
ImageView imageView = (ImageView) View.inflate(context,R.layout.activity_main,null)
.findViewById(R.id.imageview);
imageView.setImageBitmap(bitmap);
}
}, 100, 100, Bitmap.Config.RGB_565, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
ImageView imageView = (ImageView) View.inflate(context,R.layout.activity_main,null)
.findViewById(R.id.imageview);
imageView.setImageResource(R.mipmap.ic_launcher);
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return super.getParams();
}
};
//步骤3:加入到队列中
mQueue.add(imageRequest);
}
/* 单张图片 ImageCache为空
*ImageLoader不提交参数个服务器
* ImageLoader用于加载网络上的图片,
* 比ImageRequest更加高效,
* 图片进行缓存,
* 过滤重复链接,
* 避免重复发送请求。
*/
public void getImageLoaderData(){
//步骤2: 创建ImageLoader对象
ImageLoader imageLoader = new ImageLoader(mQueue, new ImageLoader.ImageCache() {
@Override
public Bitmap getBitmap(String s) {
return null;
}
@Override
public void putBitmap(String s, Bitmap bitmap) {
}
});
//获取一个Imageview
ImageView imageView = (ImageView) View.inflate(context,R.layout.activity_main,null)
.findViewById(R.id.imageview);
/*步骤3: 获取ImageListener对象
*第一个参数指定用于显示图片的ImageView控件,
*第二个参数指定加载图片的过程中显示的图片,
*第三个参数指定加载图片失败的情况下显示的图片。
*/
ImageLoader.ImageListener imageListener = ImageLoader.getImageListener(imageView,R.mipmap.
ic_launcher,R.mipmap.ic_launcher);
//步骤4: 调用ImageLoader的get()方法加载网络图片
imageLoader.get(url,imageListener);
//imageLoader.get(url,imageListener,200,300);
}
/* 多张图片ImageCache不为空
*ImageLoader不提交参数个服务器
* ImageLoader用于加载网络上的图片,
* 比ImageRequest更加高效,
* 图片进行缓存,
* 过滤重复链接,
* 避免重复发送请求。
*/
public void getAndPutImageLoaderData(){
//步骤2: 创建ImageLoader对象 缓存图片的大小20x1024x1024 20m
final LruCache<String,Bitmap> lruCache =new LruCache<String,Bitmap>(20x1024x1024);
ImageLoader imageLoader = new ImageLoader(mQueue, new ImageLoader.ImageCache(){
//获取图片
@Override
public Bitmap getBitmap(String s) {
return lruCache.get(s);
}
//提交图片
@Override
public void putBitmap(String s, Bitmap bitmap) {
lruCache.put(s,bitmap);
}
});
//获取一个Imageview
ImageView imageView = (ImageView) View.inflate(context,R.layout.activity_main,null)
.findViewById(R.id.imageview);
//步骤3
ImageLoader.ImageListener imageListener = ImageLoader.getImageListener(imageView,R.mipmap.
ic_launcher,R.mipmap.ic_launcher);
//步骤4
imageLoader.get(url,imageListener);
//imageLoader.get(url,imageListener,200,300);
}
public void getLoadNetImageData(){
//步骤2:在布局文件中添加一个NetworkImageView控件
//步骤3:创建一个ImageLoader对象
final LruCache<String,Bitmap> lruCache = new LruCache<String,Bitmap>(20);
ImageLoader.ImageCache imageCache = new ImageLoader.ImageCache() {
@Override
public Bitmap getBitmap(String s) {
return lruCache.get(s);
}
@Override
public void putBitmap(String s, Bitmap bitmap) {
lruCache.put(s,bitmap);
}
};
ImageLoader imageLoader = new ImageLoader(mQueue,imageCache);
// 步骤4:在代码中获取该控件的实例
NetworkImageView networkImageView = (NetworkImageView) View.inflate(context,R.layout.activity_main,null)
.findViewById(R.id.networkimg);
//步骤5:设置要加载的图片地址
//设置加载中显示的图片
networkImageView.setDefaultImageResId(R.mipmap.ic_launcher);
//加载失败时显示的图片
networkImageView.setErrorImageResId(R.mipmap.ic_launcher);
//网络图片的地址
networkImageView.setImageUrl(url, imageLoader);
}
}
Volley中ImageRequest、ImageLoader、NetworkImageView的简单使用
最新推荐文章于 2021-05-27 21:14:20 发布