Volley

MyApplication

public class MyApplication extends Application {

    public static RequestQueue requestQueue;
    @Override
    public void onCreate() {
        super.onCreate();
        //实例化RequestQueue对象
        requestQueue= Volley.newRequestQueue(getApplicationContext());
    }
    //返回该实例化对象
    public static RequestQueue getRequestQueue(){
        return requestQueue;
    }
}

MyImageCatch

/**
 * Created by cold on 15/9/3.
 */
public class MyImageCatch implements ImageCache {

    public LruCache<String, Bitmap> cache;
    public int maxSize = 10 * 1024 * 1024;

    public MyImageCatch() {
        cache = new LruCache<String, Bitmap>(maxSize) {
            @Override
            protected int sizeOf(String key, Bitmap value) {
                return value.getRowBytes() * value.getHeight();
            }
        };
    }

    @Override
    public Bitmap getBitmap(String s) {
        return cache.get(s);
    }

    @Override
    public void putBitmap(String s, Bitmap bitmap) {
        cache.put(s, bitmap);
    }
}
public class FirstActivity extends AppCompatActivity {

    String stringUrl = "http://192.168.0.52:8888/info.php";
    String jsonURL = "http://192.168.0.52:8888/json.php";
    String imageUrl = "http://192.168.0.52:8888/pic101.jpg";

    ImageView imageView;
    NetworkImageView networkImageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        imageView = (ImageView) findViewById(R.id.imageView);
        networkImageView= (NetworkImageView) findViewById(R.id.networkImageView);
    }

    //获取图片并缓存,该方法在主线程中使用
    public void catchImage2(String urlString) {
        //networkImageView为Volley包中的控件
        ImageLoader imageLoader = new ImageLoader(MyApplication.getRequestQueue(), new MyImageCatch());
        //设置默认显示图片
        networkImageView.setDefaultImageResId(R.drawable.loadf);
        //获取失败显示的图片
        networkImageView.setErrorImageResId(R.drawable.loadfail);
        //开始通过URL字符串获取图片
        networkImageView.setImageUrl(urlString,imageLoader);
    }

    //获取图片并缓存,该方法在主线程中使用
    public void catchImage1(String urlString) {
        ImageLoader imageLoader = new ImageLoader(MyApplication.getRequestQueue(), new MyImageCatch());
        //参数为Imageview,默认图片,出错时图片
        ImageLoader.ImageListener imageListener=ImageLoader.getImageListener(imageView,R.drawable.loadf,R.drawable.loadfail);
        //开始通过URL字符串获取图片
        imageLoader.get(urlString,imageListener);
    }

    //获取图片,可直接在主线程中调用
    private void getImage(String urlString) {
        ImageRequest imageRequest = new ImageRequest(urlString, new Response.Listener<Bitmap>() {
            @Override
            public void onResponse(Bitmap bitmap) {
                imageView.setImageBitmap(bitmap);
            }
        }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                imageView.setImageResource(R.drawable.loadfail);
            }
        });
        imageRequest.setTag("getImage");
        MyApplication.getRequestQueue().add(imageRequest);
    }

    private void post_methord() {
        volley_postString();
        volley_postJSON();
        MyApplication.getRequestQueue().cancelAll("setTag设置的标签");
    }

    //post方式获取json(不可用),可使用获取字符串的post方法
    private void volley_postJSON() {

        HashMap<String, String> hashMap = new HashMap<String, String>();
        hashMap.put("info", "volley_postJSON");
        JSONObject jsonObject = new JSONObject(hashMap);
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, jsonURL, jsonObject, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject jsonObject) {
                Log.e("volley_postJSON_suce", jsonObject.toString());
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                Log.e("volley_postJSON_fail", volleyError.toString());
            }
        });
        jsonObjectRequest.setTag("volley_postJSON");
        MyApplication.getRequestQueue().add(jsonObjectRequest);
    }

    //post方式获取字符串
    private void volley_postString() {
        StringRequest postStringRequest = new StringRequest(Request.Method.POST, stringUrl, new Response.Listener<String>() {
            @Override
            public void onResponse(String string) {
                Log.e("volley_postString_suce", string);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                Log.e("volley_postString_fail", volleyError.toString());
            }
        }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> map = new HashMap<String, String>();
                map.put("info", "volley_postString");
                return map;
            }
        };
        postStringRequest.setTag("volley_postString");
        MyApplication.getRequestQueue().add(postStringRequest);
    }

    private void get_methord() {
        voller_getString();
        volley_getJSON();
    }

    //get获取json
    private void volley_getJSON() {
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, jsonURL + "?info=volley_getJSON", null, new Response.Listener() {
            @Override
            public void onResponse(Object o) {
                Log.e("volley_getJSON_sucess", o.toString());
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                Log.e("volley_getJSON_error", volleyError.toString());
            }
        });
        jsonObjectRequest.setTag("volley_getJSON");
        MyApplication.getRequestQueue().add(jsonObjectRequest);
    }

    //get获取字符串
    private void voller_getString() {
        StringRequest stringRequest = new StringRequest(Request.Method.GET, stringUrl + "?info=see",
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String string) {
                        Toast.makeText(FirstActivity.this, string, Toast.LENGTH_SHORT).show();
                        Log.e("voller_getString_sucess", string);
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError string) {
                Toast.makeText(FirstActivity.this, string.toString(), Toast.LENGTH_SHORT).show();
                Log.e("voller_getString_fail", string.toString());
            }
        });
        //设置Tag标记请求,请求队列调用.cancelAll("voller_getString")取消下面的请求
        stringRequest.setTag("voller_getString");
        MyApplication.getRequestQueue().add(stringRequest);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值