我目前正在使用Picasso 2.0.1(之前也尝试过1.0.2)并从网络上的图片中获取位图。
一切都很好,我已经看到加载图片的改进......至少看起来更快。
我的问题是,如何从PICASSO的活动中获取统计数据?我想知道图片是从缓存中获取还是下载...
我试图通过com.squareup.picasso.StatsSnapshot获取信息,但它似乎没有更新......或者我没有正确使用它。
Picasso pi = Picasso.with(getActivity().getApplicationContext());
Bitmap bitmap = pi.load(url.toString()).get();
Log.d(this.getClass().getSimpleName(),"Cache hits:" + pi.getSnapshot().cacheHits + " Cache misses:" + pi.getSnapshot().cacheMisses);
在加载调用之前和/或之后添加日志始终返回相同的结果
缓存命中:0缓存未命中:0
我做错了什么或如何获取此信息?
提前致谢!
马克
答案 0 :(得分:5)
要获得David Hewitt描述的彩色三角形,你实际上必须像这样使用setIndicatorsEnabled
Picasso.with(mContext).setIndicatorsEnabled(true);
您可以使用setLoggingEnabled在日志中获取Picasso的统计信息
Picasso.with(mContext).setLoggingEnabled(true);
您可以使用“Picasso”过滤器搜索日志,并查看Picasso获取图像的位置以及所需的时间。非常方便!
答案 1 :(得分:0)
根据这里的网站: http://square.github.io/picasso/
您可以执行setDebugging(true)
,它会在角落或每个图像中放置彩色三角形,以指示它们是从网络,磁盘还是内存加载的。我找不到您在网站上使用的功能的具体参考,但这可能会满足您的需求。
答案 2 :(得分:0)
您可以从onStop()或onPause of Activity或Fragment
调用此方法StatsSnapshot picassoStats = Picasso.with(context).getSnapshot();
Log.d("Picasso stats ", picasspStats.toString());
然后从Android logcat选择verbose并通过Picasso过滤。
您将获得如下所示的日志:
Picasso stats: [main] StatsSnapshot{maxSize=76695844, size=75737296, cacheHits=656, cacheMisses=1091, downloadCount=8, totalDownloadSize=213376, averageDownloadSize=26672, totalOriginalBitmapSize=437547196, totalTransformedBitmapSize=609434304, averageOriginalBitmapSize=527801, averageTransformedBitmapSize=735143, originalBitmapCount=829, transformedBitmapCount=826, timeStamp=1484426664382}
答案 3 :(得分:-1)
'get()'是同步的并跳过缓存。使用'load()'方法之一来利用毕加索的全部权力。