目前,即使用户未滚动查看,我仍在加载图像,因此,何时将其从列表承包商的Picasso缓存中加载图像更快
private voID createImageCatch(ArrayList<Article> items) { for (int i = 0; i < items.size(); i++) { Article article = (Article) items.get(i); if (article.getimageUrl() != null && article.getimageUrl().length() > 0) Picasso.with(mContext).load(article.getimageUrl()) .fetch(); }}
这是完美的工作,即使用户快速滚动也可以准备图像,但这是最好的方法吗?
改进更新-添加了静态布尔值以确保只调用一次此方法,如果在服务器端添加了图像,则滚动时要加载的图像很少,只要它们已经在缓存中就没什么大不了了.
解决方法:
您是否考虑过使用Volley library?它具有特殊的ImageVIEw,可以为您下载和缓存图像.
将XML中的ImageVIEw替换为以下内容:
<com.androID.volley.toolBox.NetworkImageVIEw androID:ID="@+ID/photo" androID:layout_wIDth="48dp" androID:layout_height="48dp" androID:layout_alignParentBottom="true" androID:layout_alignParenttop="true" androID:layout_marginRight="6dip" />
并用
NetworkImageVIEw photo = (NetworkImageVIEw)vIEw.findVIEwByID(R.ID.photo);photo.setimageUrl("http://someurl.com/image.png", mImageLoader);
您确实需要设置ImageLoader,因此请创建一些字段:
private RequestQueue mRequestQueue;private ImageLoader mImageLoader;
并在您的onCreate中初始化它们:
mRequestQueue = Volley.newRequestQueue(context);mImageLoader = new ImageLoader(mRequestQueue, new ImageLoader.ImageCache() { private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>(10); public voID putBitmap(String url, Bitmap bitmap) { mCache.put(url, bitmap); } public Bitmap getBitmap(String url) { return mCache.get(url); }});
资料来源:Setting up the Android Google Volley ImageLoader for NetworkImageView
总结以上是内存溢出为你收集整理的什么是预捕获Android列表图像的最佳实践?全部内容,希望文章能够帮你解决什么是预捕获Android列表图像的最佳实践?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)