国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

Volley的簡單應用

2019-11-09 18:21:58
字體:
來源:轉載
供稿:網(wǎng)友

Volley是一個輕量級的網(wǎng)絡請求框架,主要包括字符串請求、json對象請求、圖片加載和緩存圖片加載四個內(nèi)容。四個方面大致相同。json請求其實也算是字符串請求,我們一般習慣拿到json字符串之后自己去解析。

首先下載volley.jar,把它放到libs,不需要add。

在清單文件中添加權限。

<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>布局文件幾乎都是按鈕,另加一個圖片控件。

最后就是主程序部分。貼出代碼,一目了然。

public class MainActivity extends AppCompatActivity {    RequestQueue requestQueue = null;//請求隊列    @Bind(R.id.btn_string_request)    Button btnStringRequest;    @Bind(R.id.btn_json_object_request)    Button btnJsonObjectRequest;    @Bind(R.id.btn_image_request)    Button btnImageRequest;    @Bind(R.id.btn_image_rloader)    Button btnImageRloader;    @Bind(R.id.img_icon)    ImageView imgIcon;    @Override    PRotected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.bind(this);        requestQueue = Volley.newRequestQueue(this);    }    @OnClick({R.id.btn_string_request, R.id.btn_json_object_request, R.id.btn_image_request, R.id.btn_image_rloader})    public void onClick(View view) {        switch (view.getId()) {            case R.id.btn_string_request:                stringRequest();                break;            case R.id.btn_json_object_request:                jsonObjectRequest();                break;            case R.id.btn_image_request:                imageRequest();                break;            case R.id.btn_image_rloader:                imageLoad();                break;        }    }    /**     * imageLoader緩存加載圖片     */    private void imageLoad() {        //請求地址        String url = "http://www.86kx.com/uploads/allimg/161017/2301_161017093243_1.jpg";        ImageLoader imageLoader = new ImageLoader(requestQueue, new MyImageCache());        ImageLoader.ImageListener listener = imageLoader.getImageListener(imgIcon, R.mipmap.ic_launcher, R.mipmap.ic_launcher);        imageLoader.get(url, listener, 0, 0);    }    /**     * 自定義圖片緩存     */    private class MyImageCache implements ImageLoader.ImageCache {        private LruCache<String, Bitmap> lruCache;        private int max = 10 * 1024 * 1024;//緩存大小        public MyImageCache() {            lruCache = new LruCache<String, Bitmap>(max) {                @Override                protected int sizeOf(String key, Bitmap bitmap) {                    //緩存大小為圖片每一行的字節(jié)數(shù)乘以高度                    return bitmap.getRowBytes() * bitmap.getHeight();                }            };        }        @Override        public Bitmap getBitmap(String s) {            return lruCache.get(s);        }        @Override        public void putBitmap(String s, Bitmap bitmap) {            lruCache.put(s, bitmap);        }    }    /**     * 加載網(wǎng)絡圖片     */    private void imageRequest() {        //請求地址        String url = "http://www.86kx.com/uploads/allimg/161017/2301_161017093243_1.jpg";        //成功回調        Response.Listener<Bitmap> listener = new Response.Listener<Bitmap>() {            @Override            public void onResponse(Bitmap bitmap) {                imgIcon.setImageBitmap(bitmap);            }        };        //錯誤回調        Response.ErrorListener errorListener = new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError volleyError) {                imgIcon.setImageResource(R.mipmap.ic_launcher);            }        };        //不帶參數(shù)的請求        ImageRequest imageRequest = new ImageRequest(url, listener, 0, 0, Bitmap.Config.RGB_565, errorListener);        requestQueue.add(imageRequest);//加入請求隊列    }    /**     * 請求json對象     */    private void jsonObjectRequest() {        //請求地址        String url = "http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0";        //成功回調        Response.Listener<JSONObject> listener = new Response.Listener<JSONObject>() {            @Override            public void onResponse(JSONObject s) {                Log.i("成功獲得的json字符串", s.toString());            }        };        //錯誤回調        Response.ErrorListener errorListener = new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError volleyError) {            }        };        //不帶參數(shù)的請求        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(url, null, listener, errorListener);        requestQueue.add(jsonObjectRequest);//加入請求隊列    }    /**     * 請求字符串     */    private void stringRequest() {        //請求地址        String url = "https://www.baidu.com";        //成功回調        Response.Listener<String> listener = new Response.Listener<String>() {            @Override            public void onResponse(String s) {                Log.i("成功獲得的字符串", s);            }        };        //錯誤回調        Response.ErrorListener errorListener = new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError volleyError) {            }        };        //不帶參數(shù)的請求        StringRequest stringRequest = new StringRequest(url, listener, errorListener);        //帶參數(shù)的請求,這里不進行詳細演示//        StringRequest stringRequest2=new StringRequest(Request.Method.POST,url,listener,errorListener){////            @Override//            protected Map<String, String> getParams() throws AuthFailureError {//                Map<String,String> map=new HashMap<>();//                map.put("name","john");//                map.put("age","37");//                return map;//            }//        };        requestQueue.add(stringRequest);//加入請求隊列    }}

運行結果:


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 商城县| 辛集市| 班玛县| 新安县| 高青县| 上饶县| 萝北县| 秦安县| 漳浦县| 天水市| 南充市| 湖口县| 新疆| 呼伦贝尔市| 玉门市| 诸暨市| 仪陇县| 福建省| 晋州市| 岱山县| 乐清市| 年辖:市辖区| 霍林郭勒市| 拉孜县| 侯马市| 田林县| 龙州县| 廉江市| 昔阳县| 武城县| 高州市| 静乐县| 巴楚县| 天水市| 武冈市| 鄂尔多斯市| 嵩明县| 托里县| 五原县| 综艺| 哈尔滨市|