android aquery 上传图片,AQuery(Android Query)如何实际加载图像

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

主要问题:

我想第一次存储图像,然后我想从缓存加载图像.

我在这里看到了Cache Control使用memCache和fileCache的选项但我没有得到哪个更好用于慢速Internet连接和最小的内存使用.

我可能会在解决方案中遇到一些困惑:

首先我用这样的:( memCache和fileCache都是真的)

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(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)

我能做什么以及我如何使用这个库来解决这个简单的问题

请给我解决方案.

您的帮助将得到赞赏.

解决方法:

最后得到了以下代码的解决方案:

/* 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);

如果你没有得到任何问题,请在这里评论.

谢谢.

标签:android,nullpointerexception,caching,gridview,android-query

来源: https://codeday.me/bug/20190624/1281062.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值