close
如果有很多圖片但又不想要讓你的App裡面很大一包
就可以考慮用這種方式~~
Step 1:
在你想要呈現這張照片的xml裡面加入這個元件
<com.android.volley.toolbox.NetworkImageView android:id="@+id/networkimageview" android:layout_width="wrap_content" android:layout_height="wrap_content"> </com.android.volley.toolbox.NetworkImageView>
Step 2:
新增一個檔案LruImageCache
public class LruImageCache implements ImageLoader.ImageCache { private static LruCache mMemoryCache; private static LruImageCache lruImageCache; private LruImageCache(){ // Get the Max available memory int maxMemory = (int) Runtime.getRuntime().maxMemory(); int cacheSize = maxMemory / 8; mMemoryCache = new LruCache(cacheSize){ @Override protected int sizeOf(String key, Bitmap bitmap){ return bitmap.getRowBytes() * bitmap.getHeight(); } }; } public static LruImageCache instance(){ if(lruImageCache == null){ lruImageCache = new LruImageCache(); } return lruImageCache; } @Override public Bitmap getBitmap(String arg0) { return mMemoryCache.get(arg0); } @Override public void putBitmap(String arg0, Bitmap arg1) { if(getBitmap(arg0) == null){ mMemoryCache.put(arg0, arg1); } } }
Step 3:
新增一個檔案ImageCache
public interface ImageCache { public Bitmap getBitmap(String url); public void putBitmap(String url, Bitmap bitmap); }
Step 4:
到你想要呈現這張照片的activity裡面
以下Activity是完整的程式碼
public class NetworkActivity extends Activity{ private NetworkImageView networkImageView; private RequestQueue mQueue; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); networkImageView = findViewById(R.id.networkimageview); mQueue = Volley.newRequestQueue(this); LruImageCache lruImageCache = LruImageCache.instance(); ImageLoader imageLoader = new ImageLoader(mQueue,lruImageCache); //在圖片還沒載入前,先設定一張圖片 networkImageView.setDefaultImageResId(R.drawable.ic_launcher_background); //當圖片無法載入,要呈現的圖片 networkImageView.setErrorImageResId(R.drawable.ic_launcher_background); networkImageView.setImageUrl("http://img.my.csdn.net/uploads/201403/03/1393854094_4652.jpg", imageLoader); } }
結果會像下面這樣
一開始會是一張綠色的底圖
那個是上面有提到的可以自己設定
文章標籤
全站熱搜