Volley框架的学习
来源:互联网 发布:怎么样开好淘宝店 编辑:程序博客网 时间:2024/05/23 00:08
下面大部分描述来自http://blog.csdn.net/guolin_blog/article/details/17482095
学习Volley框架之前,就必须把Volley.jar包导入我们的项目中,步骤如下:
1、首先下载好Volley.jar包(下载地址)
2、然后在项目中,将项目模式切换到Project模式
3、打开app文件夹,找到libs文件夹,将Volley.jar包复制到文件夹中
4、打开Project Structure(在设置图标的右边),然后点击Dependencies,点击右上角的添加,选择第二个File Dependency
5、选择我们刚刚复制进去的包,点击OK就完成了
一、获取网络上的文字
首先我们获取www.baidu.com网页上的文字信息
RequestQueue mQueue = Volley.newRequestQueue(this);StringRequest stringRequest = new StringRequest("https://www.baidu.com", new Response.Listener<String>() { @Override public void onResponse(String s) { Log.e("wangbin",s+"!"); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { }});mQueue.add(stringRequest);上面首先创建一个RequestQueue类的一个实例和一个StringRequest实例,然后将StringRequest实例添加到RequestQueue实例中去
上面的思路是:RequestQueue是一个请求队列,而StringRequest可以发出一个HTTP请求,最后将HTTP请求添加到队列中去
记得添加网络访问权限:<uses-permission android:name="android.permission.INTERNET" />
如果我们想要获取的文字是JSON格式的,我们也可以获取返回一个JsonObject对象,代码类似上面
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("http://m.weather.com.cn/data/101010100.html", null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d("TAG", response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("TAG", error.getMessage(), error); } });
二、获取网络上的图片
利用ImageRequest获取网上一张图片
RequestQueue mQueue = Volley.newRequestQueue(MainActivity.this);ImageRequest imageRequest = new ImageRequest( "https://gss1.bdstatic.com/5eN1dDebRNRTm2_p8IuM_a/res/img/richanglogo168_24.png", new Response.Listener<Bitmap>() { @Override public void onResponse(Bitmap response) { image.setImageBitmap(response); } }, 0, 0, Bitmap.Config.ARGB_8888, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } });mQueue.add(imageRequest);思路跟之前获取文字是一样的
其中第三第四个是图片的最大宽高度,第五个参数是图片的颜色属性
利用ImageLoader获取图片,并进行缓存
RequestQueue mQueue = Volley.newRequestQueue(MainActivity.this);ImageLoader imageLoader = new ImageLoader(mQueue, new ImageLoader.ImageCache() { @Override public Bitmap getBitmap(String s) { return null; } @Override public void putBitmap(String s, Bitmap bitmap) { }});ImageLoader.ImageListener listener = ImageLoader.getImageListener(image, R.mipmap.ic_launcher,R.mipmap.ic_launcher);imageLoader.get("https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png", listener);在创建ImageLoader实例的时候,第二个参数传入的是一个空的ImageCache对象,我们可以自己创建一个对象,来加载图片是防止出现OOM的情况
public class BitmapCache implements ImageLoader.ImageCache{ private LruCache<String,Bitmap> mCache; public BitmapCache(){ int maxSize = 10 * 1024 * 1024; mCache = new LruCache<String, Bitmap>(maxSize) { @Override protected int sizeOf(String key, Bitmap bitmap) { return bitmap.getRowBytes() * bitmap.getHeight(); } }; } @Override public Bitmap getBitmap(String s) { return mCache.get(s); } @Override public void putBitmap(String s, Bitmap bitmap) { mCache.put(s,bitmap); }}然后只需将上面的ImageCache对象替换成这个类的对象即可
3、利用NetworkImageView自定义控件的办法加载网络图片
RequestQueue mQueue = Volley.newRequestQueue(MainActivity.this);ImageLoader imageLoader = new ImageLoader(mQueue, new BitmapCache());networkImageView.setImageUrl("https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png", imageLoader);上面networkImageView就是自定义控件,布局中写法如下
<com.android.volley.toolbox.NetworkImageView android:id="@+id/network_image" android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center_horizontal"/>控件的宽、高度就是我们需要压缩成的图片的大小,压缩过程是自动实现的,如果不想压缩的话,直接改成wrap_content属性就可以,当然记得获取布局id创建实例
对于第三部分和第四部分以后有空再来补上!
0 0
- Volley框架的学习
- Volley框架的学习
- Volley框架的学习
- 【学习笔记】Volley框架的应用
- android http 框架volley 的学习 。。
- Volley框架的学习总结(1)
- Volley框架的学习总结(2)
- volley框架学习笔记
- Volley框架学习一
- Volley框架学习
- android的volley框架
- Volley框架的使用
- Volley框架的使用
- Volley框架的使用
- Volley框架的使用
- Volley框架的使用
- Volley框架的使用
- Volley框架的使用
- Eclipse遇到的问题解决办法
- 【转】最小生成树——Kruskal算法
- undefined reference to 'pthread_create'
- TCP与UDP的区别
- mybatis框架(六)——核心技术与原理
- Volley框架的学习
- 算法训练 Anagrams问题
- Spring AOP编程
- mybatis框架(七)——插件
- 【小e1开发板操作全过程】最全的小e板操作流程
- 顺序表的静态和动态实现
- 操作系统与我们编程的关系(抽象和封装的运用)
- Hibernate的简单配置和使用
- JAVA Map的四种遍历比较