Volley的应用
首先去github.com下载Volley,新建一个项目,并在libs中导入Volley.jar
在activity_main.xml中添加两个空间,用于图片的显示:
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.android.volley.toolbox.NetworkImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/iv"/>
在MainActivity.java文件中:
public class MainActivity extends Activity {
/**
*Volley是Android平台网络通信库:更快、更简单、更健壮
*Volley提供的功能:
*1.JSON、图片(异步)
*2.网络请求的排序
*3.网络请求的优先级处理
*4.缓存
*5.多级别的取消请求
*6.与Activity生命周期联动
*
*/
private ImageView iv;
private NetworkImageView iv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
getJSONVolley();
}
public void init(){
iv = (ImageView) findViewById(R.id.iv);
iv2 = (NetworkImageView) findViewById(R.id.imageview);
loadImageVolley();
netWorkImageViewVolley();
}
//获取Json字符串
public void getJSONVolley(){
RequestQueue requestQueue = Volley.newRequestQueue(this);
String jSONDateUrl = "http://wthrcdn.etouch.cn/weather_mini?city=北京";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
Request.Method.GET, jSONDateUrl, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
System.out.println("response="+ response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
System.out.println("对不起,有问题");
}
});
requestQueue.add(jsonObjectRequest);
}
//网络加载图片
public void loadImageVolley(){
String imageUrl = "http://p0.so.qhimg.com/t0118439f1e23300c6a.jpg";
RequestQueue requestQueue = Volley.newRequestQueue(this);
final LruCache<String, Bitmap> lurcache = new LruCache<String, Bitmap>(20);
ImageCache imageCache = new ImageCache() {
@Override
public void putBitmap(String key, Bitmap value) {
lurcache.put(key, value);
}
@Override
public Bitmap getBitmap(String key) {
return lurcache.get(key);
}
};
ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache);
ImageListener listener = imageLoader.getImageListener(iv,
R.drawable.ic_launcher, R.drawable.ic_launcher);
imageLoader.get(imageUrl, listener);
}
public void netWorkImageViewVolley(){
String imageUrl = "http://p0.so.qhimg.com/t0118439f1e23300c6a.jpg";
RequestQueue requestQueue = Volley.newRequestQueue(this);
final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>(20);
ImageCache iamgeCache = new ImageCache() {
@Override
public void putBitmap(String arg0, Bitmap arg1) {
lruCache.put(arg0, arg1);
}
@Override
public Bitmap getBitmap(String arg0) {
return lruCache.get(arg0);
}
};
ImageLoader imageLoader = new ImageLoader(requestQueue, iamgeCache);
iv2.setTag("url");
iv2.setImageUrl(imageUrl, imageLoader);
}
}
在程序运行之前记得在清单文件添加访问网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步