询问(Android查询)如何实际加载图像

询问(Android查询)如何实际加载图像,android,caching,gridview,nullpointerexception,android-query,Android,Caching,Gridview,Nullpointerexception,Android Query,我目前正在使用库从服务器加载图像 主要问题: 我想第一次存储图像,然后从缓存加载图像。 我在这里看到了使用memCache和fileCache的选项,但我没有看到哪个选项更适合慢速互联网连接和最小内存使用 我可能有以下一些困惑的解决方案: 首先,我这样使用:(memCache和fileCache都true) 但他说,如果图像很大,请避免内存缓存 但当网络速度慢且内存不足时,我遇到了问题 然后在我尝试之后: 但是它抛出的NullPointerException如下所示: 12-10 12:11:2

我目前正在使用库从服务器加载图像

主要问题: 我想第一次存储图像,然后从缓存加载图像。 我在这里看到了使用memCachefileCache的选项,但我没有看到哪个选项更适合慢速互联网连接和最小内存使用

我可能有以下一些困惑的解决方案:

首先,我这样使用:(memCache和fileCache都
true

但他说,如果图像很大,请避免内存缓存

但当网络速度慢且内存不足时,我遇到了问题

然后在我尝试之后:

但是它抛出的
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)
对于这个简单的问题,我能做些什么以及如何使用这个库

请给我一个解决方案


非常感谢您的帮助。

最终通过以下代码获得了解决方案:

/* 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);
图像的设置*/ //设置最大并发网络连接数,默认值为4 AjaxCallback.setNetworkLimit(8); //设置要缓存在内存中的最大图标数(图像宽度50),默认值为20 BitmapAjaxCallback.setCacheLimit(50); aq=新水道(上下文); /*从服务器获取图像并存储在缓存中*/ aq.id(holder.prodImageView).progress(convertView.findViewById(R.id.progressBar1)).image(holder.prodImagePath,true,true,0,R.drawable.no_image,null,AQuery.FADE_-IN); 如果您没有收到任何问题,请在此处进行评论


谢谢。

我们如何从缓存中检索图像,或者使用aquery检查它是否存在于缓存中。@user2779311
aq.getCachedImage(“您的url”)返回图像请求缓存的位图。如果url未缓存,则返回null。
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)
/* 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);