4

我目前使用Android Query庫從服務器加載圖像。AQuery(Android Query)如何實際加載圖像

主要問題: 我想要第一次存儲圖像,然後我想從緩存中加載圖像後。 我一直在使用MEMCACHEfileCache這裏看到選項Cache Control但我沒有得到這是更好地使用互聯網連接速度較慢和最小內存使用

我可能已經在與一些混亂的解決方案:

,首先我用這樣的:(MEMCACHEfileCachetrue

aq.id(holder.prodImage).image(holder.prodImagePath, true, true, 0, R.drawable.no_image, aq.getCachedImage(R.drawable.no_image), AQuery.FADE_IN); 

Here他說, if image is huge, avoid memory caching

但我得到了問題,而網絡很慢記憶是不夠的

然後我試圖Delay Image Loading後:

if(aq.shouldDelay(position, convertView, parent, holder.prodImagePath)){ 
    aq.id(holder.prodImage).image(R.drawable.no_image); 
} else { 
    aq.id(holder.prodImage).progress(view.findViewById(R.id.progressBar1)).image(holder.prodImagePath, false, true, 0, 0, null, AQuery.FADE_IN); 
} 

但它扔NullPointerException類似以下內容:

12-10 12:11:26.492: E/AndroidRuntime(23309): java.lang.NullPointerException 
12-10 12:11:26.492: E/AndroidRuntime(23309): at com.androidquery.util.Common.shouldDelay(Common.java:328) 
12-10 12:11:26.492: E/AndroidRuntime(23309): at com.androidquery.util.Common.shouldDelay(Common.java:340) 
12-10 12:11:26.492: E/AndroidRuntime(23309): at com.androidquery.AbstractAQuery.shouldDelay(AbstractAQuery.java:2389) 
12-10 12:11:26.492: E/AndroidRuntime(23309): at com.salesman.fragments.ProductFragment$MyGridViewAdapter.getView(ProductFragment.java:423) 
12-10 12:11:26.492: E/AndroidRuntime(23309): at android.widget.AbsListView.obtainView(AbsListView.java:2477) 
12-10 12:11:26.492: E/AndroidRuntime(23309): at android.widget.GridView.makeAndAddView(GridView.java:1331) 
12-10 12:11:26.492: E/AndroidRuntime(23309): at android.widget.GridView.makeRow(GridView.java:331) 
12-10 12:11:26.492: E/AndroidRuntime(23309): at android.widget.GridView.fillDown(GridView.java:283) 
12-10 12:11:26.492: E/AndroidRuntime(23309): at android.widget.GridView.fillGap(GridView.java:243) 
12-10 12:11:26.492: E/AndroidRuntime(23309): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5549) 
12-10 12:11:26.492: E/AndroidRuntime(23309): at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4693) 

我能做些什麼,我怎麼使用這個庫本簡單問題

請給我解決方案。

您的幫助將被讚賞。

回答

4

最後得到了與下面的代碼的解決方案:這裏

/* Settings of Image */ 
//set the max number of concurrent network connections, default is 4 
AjaxCallback.setNetworkLimit(8); 

//set the max number of icons (image width <= 50) to be cached in memory, default is 20 
BitmapAjaxCallback.setIconCacheLimit(50); 

//set the max number of images (image width > 50) to be cached in memory, default is 20 
BitmapAjaxCallback.setCacheLimit(50); 

aq = new AQuery(context); 

/* Getting Images from Server and stored in cache */ 
aq.id(holder.prodImageView).progress(convertView.findViewById(R.id.progressBar1)).image(holder.prodImagePath, true, true, 0, R.drawable.no_image, null, AQuery.FADE_IN); 

評論,如果你沒有得到,並有任何問題。

謝謝。

+0

我們如何從緩存中檢索圖像或檢查它是否存在含有aquery的緩存中。 – user2779311

+0

@ user2779311'aq.getCachedImage(「your url」);' 返回圖片請求緩存的位圖。如果URL未被緩存,則返回null。 –

+0

完美的解決方案... – Kamlesh

相關問題