Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android高級_第三方下載工具Volley,androidvolley

Android高級_第三方下載工具Volley,androidvolley

編輯:關於android開發

Android高級_第三方下載工具Volley,androidvolley


Volley下載主要應用於下載文本數據和圖片數據兩個方向,下面分別介紹;

一、使用Volley開啟下載,首先要做的是導包和添加權限;

(1)在build.gradle文件中導入依賴包:compile 'eu.the4thfloor.volley:com.android.volley:2015.05.28';

(2)在清單文件中添加訪問網絡權限,讀、寫外存權限;

二、文本內容上傳下載步驟:

(1)創建RequestQueue對象,用於發送請求的請求隊列;同時創建StringRequest對象,用於打包上傳和下載的數據字符串;

(2)初始化數據步驟:

       (2-1)初始化請求隊列;Volley對象調用單例模式newRequestQueue(),傳入上下文對象;

       (2-2)初始化StringRequest類的請求對象;傳入四個參數:

      參數1:請求方式:包括Request.Method.GET或Request.Method.POST,默認為下載Request.Method.GET;

      參數2:網絡請求路徑;

      參數3:實例化的請求監聽對象;Response.Listener<T>,在該類中重寫onResponse(String response),進行收到請求結果後的操作;

      參數4:實例化的錯誤監聽對象;ErrorListener,在該類中重寫onErorResponse(VolleyError error),進行出現網絡錯誤的處理;

       (2-3)如果是上傳數據,在初始化StringRequest對象之後,重寫該類中的getParams(),同時拋出AuthFailureError錯誤,該方法返回Map<String, String>類型的數據,以鍵值對的形式上傳到網絡;

       (2-4)在操作事件中,RequestQueue對象調用add(),添加StringRequest對象作為不同的請求和上傳數據包進行網絡操作;

       (2-5)onDestroy中加上try-catch語句來捕捉所有異常,以保證這個界面正常退出;RequestQueue對象調用cancelAll()傳入”get”和”post”兩種不同形式取消網絡;

三、圖片上傳下載步驟:

(1)創建RequestQueue對象,用於發送請求的請求隊列;同時創建ImageLoader對象和ImageRequest對象,用於打包下載和上傳的圖片;

(2)在下載圖片時有三種方式:

  (2-1)圖片請求方式(與文本請求類似):

    1)初始化ImageRequest類的圖片請求對象,傳入六個參數:

                     參數1:圖片下載路徑;

                     參數2:Response類的靜態監聽Listener<Bitmap>實例化對象,重寫onResponse()傳入Bitmap對象作為得到的圖像;

                     參數3:圖片寬度大小,正常為100;

                     參數4:圖片高度大小,正常為100;

                     參數5:圖片色度方式,Bitmap.Config.RGB_565;

                     參數6:Response類的靜態監聽ErrorListener實例化對象,重寫onErrorResponse(),當請求圖片錯誤時調用此方法;

              2)將圖片請求對象放入請求隊列;RequestQueue對象調用add(),傳入ImageRequest對象;

  (4-2)圖片加載方式:

    1)創建ImageLoader類的圖片加載對象,可以設置圖片緩存;傳入兩個參數:

      參數1:請求隊列RequestQueue對象;

      參數2:實現繼承ImageLoader.ImageCache的自定義圖片緩存類;

            2)自定義圖片緩存類繼承ImageLoader.ImageCache中,定義一個屬性兩個方法:

              屬性:圖片緩存大小:首先確定圖片緩存大小,獲取系統運行內存,Runtime.getRuntime().maxMemory()/1024/1024/8 獲取當前系統運行內存的1/8作為圖片緩存;之後創建LruCache<String, Bitmap>對象,傳入圖片緩存大小確定即可;

                  重寫getBitmap(String url),在獲得圖片時調用此方法,返回LruCach對象調用get()傳入url的Bitmap對象;

                  重寫putBitmap(String url, Bitmap bitmap),在加載圖片時調用此方法,LruCache對象調用put()傳入url下載路徑和bitmap圖片即可;

    3)創建ImageLoader.ImageListener單例,ImageListener調用靜態方法getImageListener(),傳入三個參數:

                     參數1:圖片要顯示的控件;

                     參數2:加載圖片前的顯示圖像資源Id;

                     參數3:加載圖片失敗後顯示圖像資源Id;

    4)Loader對象調用get()開啟下載,傳入圖片下載路徑和ImageListener對象兩個參數;

  (4-3)使用網絡圖片控件方式NetworkImageView:

    1)初始化NetworkImageView控件;

    2)創建ImageLoader類的圖片加載對象,可以設置圖片緩存;
    3)NetworkImageView對象調用setDefaultImageResId()設置加載前的圖片資源Id;

    4)NetworkImageView對象調用setErrorImageViewResId()設置加載失敗時的圖片資源Id;

    5)NetworkImageView對象調用setImageUrl()傳入兩個參數,設置加載圖片;

                     參數1:圖片下載路徑;

                     參數2:ImageLoader對象;

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved