我使用UrlImageViewHelper爲了在適配器視圖中加載圖片。什麼可以使加載緩慢的android 4.1.X而不是4.2?
我的適配器是:
@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)。第一次下載/顯示時速度很慢。升級到android 4.2後,這個問題不再發生。在HTC上。
我試圖分析這些調用,我相信在非常長的調用期間,它會掛起讀取套接字輸入流。
有沒有人有線索,爲什麼兩個平臺之間的性能差距如此之大?
logcat的輸出:(在100毫秒定時通常複製)
機器人4.1。2銀河SIII迷你
- 時間:3217
- 時間:4782
- 時間:124
- 時間:56
- 時間:168
- 時間:84
- 時間:102
- time:2819
- time: 2703
- 時間:154
- 時間:2468
- 時間:81
- 時間:40
- 時間:52
- 時間:2495
- 時間:37
- 時間:2007年
- time:58
- time:38
- 時間:119
- 時間:80
- 時間:44
- 時間:2419
- 時間:1651
- 時間:40
- 時間:2766
- 時間:90
- 時間:1889年
- 時間:183
- 時間:2515
- 時間:58
- 時間:3345
- 時間:2661
- 時間:81
- 時間:2434
- 時間:119
大多以上1.5秒。用戶需要逐個滾動項目才能看到圖片
On android 4。3個關係4:
- 時間:47
- 時間:1111
- 時間:154
- 時間:46
- 時間:124
- 時間:115
- 時間:150
- time:201
- time:332
- 時間:366
- 時間:450
- 時間:82
- 時間:167
- 時間:81
- 時間:150
- 時間:224
- 時間:224
- time:143
- time:185
- 時間:66
- 時間:183
- 時間:66
- 時間:218
- 時間:98
- 時間:169
- 時間:49
- 時間:148
- 時間:65
- time:64
- time:60
- 時間:169
- 時間:51
始終低於500毫秒,列表可用
也許在getView方法中分配UrlImageViewCallback會降低速度,您是否可以一次又一次地將它傳遞給同一個實例? –
在適配器的getview方法中花費的時間始終低於5毫秒。如果我刪除整個回調,我看到相同的結果。 (一個很慢,另一個很快)。我不認爲回調是問題的原因。 – alaeri
你確定這不僅僅是下載時間?這些文件有多大?後一組數值表示它們可能正從緩存中加載。 – koush