我正在使用GridView顯示20個圖像。我使用Glide在我創建的適配器中獲取並顯示來自Web的圖像。問題是,如果所有圖像都下載了,當我滾動網格視圖時,我看到圖像出現像動畫一樣的淡入淡出。我不'想要這個。如果我滾動得更快,我希望在gridview中加載所有圖像而不會看到它們。Android GridView使用適配器加載圖像和Glide
我試過使用diskcache()和dontAnimate(),但它沒有解決我的問題。我認爲問題在於我顯示了gridview的4個單元格。當我滾動適配器調用getView來顯示其他兩個單元格,並刪除我滾動的2。問題在於getview每次都需要時間來顯示其他兩個單元格,並且我看起來像加載的效果。我希望我的場景看起來像一個網格視圖,其中存在並分配了所有20個單元格。
這是我的適配器:
public class ImagesAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<Picture> images;
public ImagesAdapter(Context context, int resource, ArrayList<Picture> inputImages) {
super();
this.mContext = context;
this.images = inputImages;
}
@Override
public int getCount() {
return images.size();
}
@Override
public Picture getItem(int position) {
return images.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
ViewHolder holder = null;
if (row == null) {
row = LayoutInflater.from(mContext).inflate(R.layout.grid_item_layout, null);
holder = new ViewHolder();
holder.imageView = (ImageView) row.findViewById(R.id.grid_item_image);
holder.id = images.get(position).getImageId();
row.setTag(holder);
}
else {
holder = (ViewHolder) row.getTag();
holder.id = images.get(position).getImageId();
}
Picture pic = images.get(position);
Glide
.with(mContext)
.load(pic.getBigImageUrl())
.into(holder.imageView);
return row;
}
public class ViewHolder {
ImageView imageView;
public String id;
}
}
有人可以幫助我找到解決辦法嗎?感謝所有
滑翔將試圖下載你的圖像,當他們即將出現在屏幕上。所以會有延遲,直到他們出現在你的牢房裏。如果你不想延遲,你必須事先下載這些圖像。如果Glide提供緩存選項,您的圖像將第二次立即顯示,但您將永遠不得不等待它們第一次下載。 –
是的,Glide正在第一次下載它們。但我的問題不是第一次。第二次,我確認圖像全部下載,即使全部下載,在滾動上它們都不會立即顯示。 – denno