中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Android利用Volley框架加載網(wǎng)絡圖片

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用
       Volley框架是在Google I/O 2013上Volley發(fā)布的,目的是使Android平臺上的網(wǎng)絡通信庫,能使網(wǎng)絡通信更快,更簡單,更健壯。我們也簡單了解下Volley引入的背景,在Volley出現(xiàn)以前,我們可能面臨如下的問題,比如要在ListView或是GridView中加載數(shù)量較多的圖片時:先在ListAdapter#getView()里開始圖像的讀取,再通過AsyncTask等機制使用HttpURLConnection從服務器去的圖片資源,然后在AsyncTask#onPostExecute()里設置相應ImageView的屬性。這樣下來不僅僅步驟繁瑣,而且不考慮周全的話,還可能出現(xiàn)OOM等問題,F(xiàn)在有了Volley后我們只需要一個函數(shù)即可實網(wǎng)絡圖片的加載。簡單地講Volley功能有:


  • JSON,圖像等的異步加載;
  • 網(wǎng)絡請求的排序;
  • 網(wǎng)絡請求的優(yōu)先級處理;
  • 圖片緩存;
  • 多級別取消請求;
  • 和Activity生命周期的聯(lián)動(Activity結束時同時取消所有網(wǎng)絡請求)等。                                                                                                              
    今天先簡單貼下用Volley加載網(wǎng)絡圖片,下次有時間再貼下用Volley實現(xiàn)http請求及json數(shù)據(jù)加載。用Volley加載網(wǎng)絡圖片常用有兩種方式,一種是用ImageLoader,另外是用Volley封裝好的圖片控件NetworkImageView:
  • 第一種方式步驟:
  •  創(chuàng)建一個RequestQueue對象,就一句話:
    RequestQueue mQueue = Volley.newRequestQueue(context); 
  • 創(chuàng) 建一個ImageLoader對象,
    ImageLoader mImageLoader= new ImageLoader(mRequestQueue, new BitmapLruCache(cacheSize));      
    public class BitmapLruCache extends LruCache<String, Bitmap> implements ImageLoader.ImageCache {
    public BitmapLruCache(int maxSize) {
    super(maxSize);
    }
    protected int sizeOf(String key, Bitmap bitmap) {
    return (bitmap.getRowBytes() * bitmap.getHeight());
    }
    public Bitmap getBitmap(String url) {
    return ((Bitmap) get(url));
    }
    public void putBitmap(String url, Bitmap bitmap) {
    put(url, bitmap);
    }
    }***
    創(chuàng)建ImageLoader中的參數(shù)cacheSize就是我們設置的緩存文件最大值,比如可以設置int cacheSize= 10 * 1024 * 1024;  
  • 創(chuàng)建ImageListener listener = ImageLoader.getImageListener(imageView,R.drawable.default_image, R.drawable.failed_image);//imageView參數(shù)就是我們要展示圖片的控件
  • 然后就可以加載圖片了:imageLoader.get("http://www.xxxxxxx.jpg", listener);//傳入圖片url及上面創(chuàng)建的listener就可OK.
  • 第二種方式,就是利用Volley封裝好的NetworkImageView加載圖片。
  • 這種方式更簡單,把NetworkImageView當成我們平時用的ImageView放到我們要加載圖片的布局xml中,在對應的代碼中用NetworkImageView imageView=findViewById();找到控件,
  • networkImageView.setDefaultImageResId(R.drawable.default_icon);//加載中顯示的圖片
    networkImageView.setErrorImageResId(R.drawable.failed_icon);//加載失敗時顯示的圖片
    networkImageView.setImageUrl("http://xxxxxxx.jpeg",imageLoader);//目標圖片的URL地址(第一個參數(shù)用于指定圖片的URL地址,第二個參數(shù)則是上面創(chuàng)建好的ImageLoader對象)。

標簽: Google 代碼 服務器 通信 網(wǎng)絡

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:Android開發(fā)中常用屏幕單位轉換

下一篇:Android開發(fā)工具類