2015-12-07 24 views
0

UPDATE的Android CustomListAdapter從URL中加載滑動菜單

由於通知Justin.W我傳遞的ImageView到ImageLoader的

imageLoader.DisplayImage(imageUrl, imageView); 

但還是第一時間對第一開開掛起形象。因爲它正在等待圖像加載。

我正在開發滑動菜單,並用CustomListAdapter(圖像和文本)填充它。第一行具有動態數據,圖像和用戶名。僅當我切換菜單以顯示第一次時,getView方法纔會觸發,因此圖像加載並掛起菜單打開。這是getView方法CustomListAdapter類

public View getView(int position, View view, ViewGroup parent) { 
    LayoutInflater inflater = context.getLayoutInflater(); 
    View rowView = inflater.inflate(R.layout.my_list, null,true); 
    TextView txtTitle = (TextView) rowView.findViewById(R.id.menuItem); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon); 
    if(position==0){ 
     SharedPreferences preferences = context.getSharedPreferences("logInPref", 0); 
     String name = preferences.getString("name", null); 
     String image = preferences.getString("image", null); 
     txtTitle.setText(name); 
     if(image!=null){ 
      img = imageView; 
      imageView.setPadding(2, 2, 2, 2); 
      String imageUrl = "http://doktormobil.ru/cms/avatar2/min/"+image; 
      new LoadImage().execute(imageUrl); 
     } 
    } else { 
     imageView.setImageResource(imgid[position]); 
     txtTitle.setText(itemname[position]); 
    } 
    return rowView; 
}; 

有什麼辦法來加載從URL的圖像,而無需打開菜單滑動,所以在第一次打開的菜單圖像已經加載和顯示?

回答

0

然後在切換菜單之前,您應該將圖像下載到後臺線程並將其存儲在LruCache中。

http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html

或者你也應該通過ImageView的到的LoadImage()的AsyncTask,並有後臺線程分配位圖在後臺線程ImageView的,而不是:這裏使用LruCache關於位圖緩存

信息鎖定UI線程。

+0

我在後臺加載圖像 –

+0

將imageView傳遞給LoadImage(imageView).execute(urlPath)。然後在postExecute()下執行imageView.setImageResource(bitmapHere); –

+0

沒有運氣(首次打開時拖動動畫仍然掛起。 –