編輯:關於Android編程
本文主要從兩個方面對Android Volley框架的使用方法進行講解,具體內容如下
一、網絡請求
1.get方式請求數據
// 1 創建一個請求隊列 RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this); // 2 創建一個請求 String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api"; StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() { // 正確接收數據回調 @Override public void onResponse(String s) { tv_volley_result.setText(s); } }, new Response.ErrorListener() {// 發生異常後的監聽回調 @Override public void onErrorResponse(VolleyError volleyError) { tv_volley_result.setText("加載失敗" + volleyError); } }); // 3 將創建的請求添加到請求隊列中 requestQueue.add(stringRequest);
2.post方式請求數據
// 1 創建一個請求隊列 RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this); // 2 創建一個post請求 String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api"; StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String s) { tv_volley_result.setText(s); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { tv_volley_result.setText("請求失敗" + volleyError); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<String, String>(); // map.put("value1","param1"); return map; } }; // 3 將post請求添加到隊列中 requestQueue.add(stringRequest);
3.請求Json數據
// 1 創建一個請求隊列 RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this); // 2 創建一個請求 String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api"; JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject jsonObject) { tv_volley_result.setText(jsonObject.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { tv_volley_result.setText("請求失敗" + volleyError); } }); // 3 將創建的請求添加到請求隊列中 requestQueue.add(jsonObjectRequest);
二、圖片加載
1.ImageRequest加載圖片
// 1 創建一個請求隊列 RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this); // 2 創建一個圖片的請求 String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg"; ImageRequest imageRequest = new ImageRequest(url, new Response.Listener<Bitmap>() { @Override public void onResponse(Bitmap bitmap) { // 正確接收到圖片 iv_volley_result.setImageBitmap(bitmap); } }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { iv_volley_result.setImageResource(R.drawable.atguigu_logo); } }); // 3 將請求添加到請求隊列中 requestQueue.add(imageRequest);
2.Imageloader加載圖片
// 創建一個請求隊列 RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this); ImageLoader imageLoader = new ImageLoader(requestQueue, new BitmapCache()); // 加載圖片 String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg"; ImageLoader.ImageListener imageListener = imageLoader.getImageListener(iv_volley_result, R.drawable.atguigu_logo, R.drawable.atguigu_logo); imageLoader.get(url, imageListener);
BitmapCache.java
public class BitmapCache implements ImageLoader.ImageCache { private LruCache<String, Bitmap> mCache; public BitmapCache() { int maxSize = 10 * 1024 * 1024;// 10m mCache = new LruCache<String, Bitmap>(maxSize) { @Override protected int sizeOf(String key, Bitmap bitmap) { return bitmap.getRowBytes() * bitmap.getHeight(); } }; } @Override public Bitmap getBitmap(String url) { return mCache.get(url); } @Override public void putBitmap(String url, Bitmap bitmap) { mCache.put(url, bitmap); } }
3.NetworkImageView加載圖片
<com.android.volley.toolbox.NetworkImageView android:id="@+id/iv_volley_networkimagview" android:layout_width="200dp" android:layout_height="200dp" android:visibility="gone"> </com.android.volley.toolbox.NetworkImageView>
// 創建一個請求隊列 RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this); // 創建一個Imageloader ImageLoader imageLoader = new ImageLoader(requestQueue, new BitmapCache()); // 默認圖片和異常圖片設置 iv_volley_networkimagview.setDefaultImageResId(R.drawable.atguigu_logo); iv_volley_networkimagview.setErrorImageResId(R.drawable.atguigu_logo); // 加載圖片 String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg"; iv_volley_networkimagview.setImageUrl(url, imageLoader);
1.Java JDK需要先說明下,OS X系統是自帶有Java JDK1.6的。不過這裡我安裝的是JDK7,下載地址:http://www.oracle.co
先來看看效果圖當你點擊菜單可以更改圖標,例如點擊happy,首頁就會變一個笑臉,這個實現的過程超級簡單你需要使用ToolBar與DrawableLayout兩個比較新的控
總體上來說,Toolbar的使用可以分為兩個方面,一方面是將ToolBar當作ActionBar來用,另一方面就是將Toolbar當成一個單獨的控件來用,不過到目前為止我
系統版本:Android 4.2.2_r1 本文主要是在Android中添加思源字體的過程記錄。思源字體是Google和Adobe在2014.07.18發布的中文字體。