我正在使用UrlImageViewHelper来在适配器视图中加载图片。
我的适配器是:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView=new SquaredImageView(getContext());
}
SquaredImageView view= (SquaredImageView) convertView;
final long time=System.currentTimeMillis();
UrlImageViewHelper.setUrlDrawable(view,getItem(position).getLook_picture(),
R.drawable.placeholder_bkp, -1,new UrlImageViewCallback() {
@Override
public void onLoaded(ImageView imageView, Bitmap loadedBitmap,
String url, boolean loadedFromCache) {
Log.d(TAG,"time : "+ (System.currentTimeMillis()-time));
}
});
return view;
}
我正在下载和显示大图片(620x620 JPG)在一个全宽度列表中。第一次下载/显示速度很慢,但在HTC One升级到Android 4.2之后,这个问题不再存在。
我试图分析调用过程,我认为在非常长的调用期间,它会挂起读取套接字输入流。
有人知道为什么两个平台之间性能差别如此之大吗?
日志输出: (100毫秒以下的时间通常是重复的)
Android 4.1.2 Galaxy SIII mini:
- 时间: 3217
- 时间: 4782
- 时间: 124
- 时间: 56
- 时间: 168
- 时间: 84
- 时间: 102
- 时间: 2819
- 时间: 2703
- 时间: 154
- 时间: 2468
- 时间: 81
- 时间: 40
- 时间: 52
- 时间: 2495
- 时间: 37
- 时间: 2007
- 时间: 58
- 时间: 38
- 时间: 119
- 时间: 80
- 时间: 44
- 时间: 2419
- 时间: 1651
- 时间: 40
- 时间: 2766
- 时间: 90
- 时间: 1889
- 时间: 183
- 时间: 2515
- 时间: 58
- 时间: 3345
- 时间: 2661
- 时间: 81
- 时间: 2434
- 时间: 119
大多数超过1.5秒,用户需要逐一滚动项目以查看图片
Android 4.3 Nexus 4:
- 时间: 47
- 时间: 1111
- 时间: 154
- 时间: 46
- 时间: 124
- 时间: 115
- 时间: 150
- 时间: 201
- 时间: 332
- 时间: 366
- 时间: 450
- 时间: 82
- 时间: 167
- 时间: 81
- 时间: 150
- 时间: 224
- 时间: 224
- 时间: 143
- 时间: 185
- 时间: 66
- 时间: 183
- 时间: 66
- 时间: 218
- 时间: 98
- 时间: 169
- 时间: 49
- 时间: 148
- 时间: 65
- 时间: 64
- 时间: 60
- 时间: 169
- 时间: 51
平均响应时间保持在500毫秒以下,列表可用。