android volley框架 使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android volley框架 使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5710字,纯文字阅读大概需要9分钟。
内容图文
![android volley框架 使用](/upload/InfoBanner/zyjiaocheng/1263/25af15b5dd1c4bc0b62b0039da02e9f5.jpg)
volley google提供的一个关于网络请求的框架
参考:
http://blog.csdn.net/t12x3456/article/details/9221611
http://www.cnblogs.com/freexiaoyu/p/3446028.html
代码:
import org.json.JSONObject; import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v4.util.LruCache; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; import com.android.volley.Request.Method; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.ImageLoader; import com.android.volley.toolbox.ImageLoader.ImageCache; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.NetworkImageView; import com.android.volley.toolbox.Volley; import com.android.volley.toolbox.ImageLoader.ImageListener; /** * Volley 测试 * * @Description:volley测试 * @author sleep * @date create date 2014年3月6日 * @version V1.0 */ public class MainActivity extends Activity implements View.OnClickListener { Button getJson, getImg, netWork; ImageView img; NetworkImageView workImg; @Override protectedvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getJson = (Button) findViewById(R.id.get_json); getJson.setOnClickListener(this); getImg = (Button) findViewById(R.id.get_image); getImg.setOnClickListener(this); netWork = (Button) findViewById(R.id.net_work); netWork.setOnClickListener(this); img = (ImageView) findViewById(R.id.img); workImg = (NetworkImageView) findViewById(R.id.net_work_img); } @Override publicvoid onClick(View v) { if (v.equals(getJson)) { getJson("http://www.baidu.com/"); } elseif (v.equals(getImg)) { setImg("http://c.hiphotos.baidu.com/image/w%3D2048/sign=2da8c99e8026cffc692ab8b28d394b90/7af40ad162d9f2d3cdc19be8abec8a136227cce1.jpg"); } elseif (v.equals(netWork)) { setNetWorkImage("http://h.hiphotos.baidu.com/image/w%3D2048/sign=149929469113b07ebdbd570838ef9023/e61190ef76c6a7ef21700641fffaaf51f3de6607.jpg"); } } /* * Volley中,RequestQueue 为核心,所有访问都会使用到 * getJson 请求json JsonObjectRequest(请求类型,路径,null,结果监听,错误监听) * 第三个参数可能是用来上传,只是可能,没有细看 * * imageLoader LruCache:强引用,图片缓存的一种方式,20则表示缓存大小,这是引用类型缓存,不会保存在本地 * ImageLoader.getImageListener(ImageView,默认图片,加载失败时的图片) 都是用id,的,可以为0,表示没有 * * NetWorkImageView 可以用来代替ImageView,imageView加载的时候,直接去请求,不用通过事件去加载ImageView * *//** * NetWorkImageView 测试 * * @param url */privatevoid setNetWorkImage(String url) { RequestQueue requestQueue = Volley.newRequestQueue(this); final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>( 20); ImageCache imageCache = new ImageCache() { @Override publicvoid putBitmap(String key, Bitmap value) { lruCache.put(key, value); } @Override public Bitmap getBitmap(String key) { return lruCache.get(key); } }; ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache); workImg.setTag("url"); workImg.setImageUrl(url, imageLoader); } /** * 请求json * * @param url */void getJson(String url) { // 请求json RequestQueue mQueue = Volley.newRequestQueue(this); JsonObjectRequest jsonRequest = new JsonObjectRequest(Method.GET, url, null, new Response.Listener<JSONObject>() { publicvoid onResponse(JSONObject response) { // 正常返回结果 System.out.println(response.toString()); } }, new Response.ErrorListener() { @Override publicvoid onErrorResponse(VolleyError error) { // 结果非json格式 Toast.makeText(MainActivity.this, "网络错误(-3)", Toast.LENGTH_SHORT).show(); } }); mQueue.add(jsonRequest); mQueue.start(); } /** * 加载图片 * * @param url */void setImg(String url) { RequestQueue requestQueue = Volley.newRequestQueue(this); // 强引用、20个缓存final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>( 20); ImageCache imageCache = new ImageCache() { @Override publicvoid putBitmap(String key, Bitmap value) { lruCache.put(key, value); } @Override public Bitmap getBitmap(String key) { return lruCache.get(key); } }; ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache); ImageListener listener = ImageLoader.getImageListener(img, R.drawable.ic_launcher, R.drawable.ic_launcher); imageLoader.get(url, listener); //下面代码无关 img.setVisibility(View.VISIBLE); } }
布局:
< 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" android:paddingBottom ="@dimen/activity_vertical_margin" android:paddingLeft ="@dimen/activity_horizontal_margin" android:paddingRight ="@dimen/activity_horizontal_margin" android:paddingTop ="@dimen/activity_vertical_margin" tools:context =".MainActivity" > < Button android:id ="@+id/get_json" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:text ="get jsonObject" /> < Button android:id ="@+id/get_image" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:layout_marginBottom ="10dp" android:layout_marginTop ="10dp" android:text ="download Image" /> < ImageView android:id ="@+id/img" android:layout_width ="200dp" android:layout_height ="200dp" android:src ="@drawable/ic_launcher" android:visibility ="gone" /> < Button android:id ="@+id/net_work" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:text ="NetworkImageView" /> < com.android.volley.toolbox.NetworkImageView android:id ="@+id/net_work_img" android:layout_width ="200dp" android:layout_height ="200dp" /> </ LinearLayout >
原文:http://www.cnblogs.com/sleepend/p/3584786.html
内容总结
以上是互联网集市为您收集整理的android volley框架 使用全部内容,希望文章能够帮你解决android volley框架 使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。