安卓新的連網方式 Volley的使用(2)

來源:互聯網
上載者:User

標籤:android   style   blog   http   color   java   使用   art   

 如果使用volley 擷取 網狀圖片 最好還是用 Volley 提供的NetworkImageView類,  可以很輕鬆的 完成工作, 而且他可以設定緩衝, lru 和 sd卡的緩衝。一些都封裝好了。

NetworkImageView類的具體使用方式如下:

    <FrameLayout        android:id="@+id/flImageContainer"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/gvImages"        android:layout_margin="30dp" >        <com.android.volley.toolbox.NetworkImageView            android:id="@+id/nivTestView"            android:layout_width="100dp"            android:layout_height="100dp" >        </com.android.volley.toolbox.NetworkImageView>    </FrameLayout>

  

networkImageView = (NetworkImageView) findViewById(R.id.nivTestView);  ..找到對應的 NetworkImageviewmQueue = Volley.newRequestQueue(this);     //老樣子 ,產生LruImageCache lruImageCache = LruImageCache.instance();  // 新加的, 這是一個實現了ImageCache 介面的緩衝類 ,使用LruImageLoader imageLoader = new ImageLoader(mQueue,lruImageCache);  //主要的連網擷取圖片工作都交給了他networkImageView.setDefaultImageResId(R.drawable.ic_launcher);  //預設載入圖片networkImageView.setErrorImageResId(R.drawable.ic_launcher);//錯誤的圖片networkImageView.setImageUrl(URLS[1], imageLoader);

  所以在利用NetworkImageView之前,我們還需要先去實現這個介面,而Volley推薦的也就是LruCache,代碼中的LruImageCache實現如下:

package com.lms.volleydemo;import android.graphics.Bitmap;import android.support.v4.util.LruCache;import com.android.volley.toolbox.ImageLoader.ImageCache;public class LruImageCache implements ImageCache{private static LruCache<String, Bitmap> mMemoryCache;private static LruImageCache lruImageCache;private LruImageCache(){// Get the Max available memoryint maxMemory = (int) Runtime.getRuntime().maxMemory();int cacheSize = maxMemory / 8;mMemoryCache = new LruCache<String, Bitmap>(cacheSize){@Overrideprotected int sizeOf(String key, Bitmap bitmap){return bitmap.getRowBytes() * bitmap.getHeight();}};}public static LruImageCache instance(){if(lruImageCache == null){lruImageCache = new LruImageCache();}return lruImageCache;}@Overridepublic Bitmap getBitmap(String arg0) {return mMemoryCache.get(arg0);}@Overridepublic void putBitmap(String arg0, Bitmap arg1) {if(getBitmap(arg0) == null){mMemoryCache.put(arg0, arg1);}}}

  

2 然後開始合體了

ImageLoader imageLoader = new ImageLoader(mQueue,lruImageCache);  

 

 

 

 

這裡面詳細 http://blog.csdn.net/linmiansheng/article/details/21293699

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.