Android利用Volley异步加载数据(JSON和图片)完整示例

发布时间:2016-12-6 18:11:13 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Android利用Volley异步加载数据(JSON和图片)完整示例",主要涉及到Android利用Volley异步加载数据(JSON和图片)完整示例方面的内容,对于Android利用Volley异步加载数据(JSON和图片)完整示例感兴趣的同学可以参考一下。

  import org.json.JSONObject;   import android.app.Activity;   import android.app.ProgressDialog;   import android.graphics.Bitmap;   import android.os.Bundle;   import android.support.v4.util.LruCache;   import android.widget.ImageView;   import com.android.volley.Request;   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.ImageLoader.ImageListener;   import com.android.volley.toolbox.JsonObjectRequest;   import com.android.volley.toolbox.NetworkImageView;   import com.android.volley.toolbox.Volley;     /**  * Demo描述:    * 1 利用Volley获取JSON数据  * 2 利用Volley异步加载图片  * 1 利用NetworkImageView加载网路图片  *    * 参考资料:  * 1 http://blog.csdn.net/t12x3456/article/details/9221611  * 2 http://blog.csdn.net/xyz_lmn/article/details/12063561  * 3 http://blog.csdn.net/lfdfhl/article/details/12221875  *   Thank you very much  */   public class MainActivity extends Activity {       private ImageView mImageView;       private NetworkImageView mNetworkImageView;       @Override       protected void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);           setContentView(R.layout.main);           init();       }              private void init(){           mImageView=(ImageView) findViewById(R.id.imageView);           mNetworkImageView=(NetworkImageView)findViewById(R.id.networkImageView);           getJSONByVolley();           loadImageByVolley();           showImageByNetworkImageView();       }         /**      * 利用Volley获取JSON数据      */       private void getJSONByVolley() {           RequestQueue requestQueue = Volley.newRequestQueue(this);           String JSONDataUrl = "http://pipes.yahooapis.com/pipes/pipe.run?_id=giWz8Vc33BG6rQEQo_NLYQ&_render=json";           final ProgressDialog progressDialog = ProgressDialog.show(this, "This is title", "...Loading...");             JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(                   Request.Method.GET,                    JSONDataUrl,                    null,                   new Response.Listener<JSONObject>() {                       @Override                       public void onResponse(JSONObject response) {                           System.out.println("response="+response);                           if (progressDialog.isShowing()&&progressDialog!=null) {                               progressDialog.dismiss();                           }                       }                   },                    new Response.ErrorListener() {                       @Override                       public void onErrorResponse(VolleyError arg0) {                              System.out.println("sorry,Error");                       }                   });           requestQueue.add(jsonObjectRequest);       }                     /**      * 利用Volley异步加载图片      *        * 注意方法参数:      * getImageListener(ImageView view, int defaultImageResId, int errorImageResId)      * 第一个参数:显示图片的ImageView      * 第二个参数:默认显示的图片资源      * 第三个参数:加载错误时显示的图片资源      */       private void loadImageByVolley(){           String imageUrl="http://avatar.csdn.net/6/6/D/1_lfdfhl.jpg";           RequestQueue requestQueue = 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(requestQueue, imageCache);           ImageListener listener = ImageLoader.getImageListener(mImageView, R.drawable.ic_launcher,R.drawable.ic_launcher);           imageLoader.get(imageUrl, listener);       }              /**      * 利用NetworkImageView显示网络图片      */       private void showImageByNetworkImageView(){           String imageUrl="http://avatar.csdn.net/6/6/D/1_lfdfhl.jpg";           RequestQueue requestQueue = 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(requestQueue, imageCache);           mNetworkImageView.setTag("url");           mNetworkImageView.setImageUrl(imageUrl,imageLoader);       }     }  <RelativeLayout 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" > <com.android.volley.toolbox.NetworkImageView android:id="@+id/networkImageView" android:layout_width="120dip" android:layout_height="120dip" android:layout_centerHorizontal="true" android:layout_marginTop="30dip" /> <ImageView android:id="@+id/imageView" android:layout_width="120dip" android:layout_height="120dip" android:layout_centerInParent="true" /> </RelativeLayout>

上一篇:2012ACM-ICPC杭州站A题
下一篇:tq210 nandflash 驱动

相关文章

相关评论