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