私はGridViewを使用して20枚の画像を表示しています。私は作成したアダプタでGlideを使ってウェブから画像を取り出して表示しています。問題は、すべての画像がダウンロードされた場合でも、グリッド表示をスクロールしているときに、フェードのようなアニメーションで表示されている画像が表示されていることです。私はこれを望んでいない。私はより速くスクロールすると、それらが表示されることなく、グリッドビューに読み込まれたすべての画像を持っていたい。AndroidのgridViewは、アダプタとGlideを使用して画像を読み込みます。
私はdiskcache()とdontAnimate()を使ってみましたが、私の問題は解決しませんでした。問題は私がgridviewの4つのセルを表示していることだと思います。私がスクロールすると、アダプタはgetViewを呼び出して他の2つのセルを表示し、スクロールしている2つを削除します。問題は、getviewが毎回他の2つのセルを表示するのに時間がかかり、ロードのような効果があることです。自分のシナリオを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;
}
}
誰かが私は解決策を見つける手助けすることはできますか?グライドあなたはキャッシュからイメージをロードするために、ディスクキャッシュ戦略を追加する必要がありますhereまたはhere
Glideは、画像が画面に表示されようとしているときに画像をダウンロードしようとします。だから、彼らがあなたの細胞に現れるまでには遅れがあるでしょう。遅れたくない場合は、あらかじめそれらの画像をダウンロードする必要があります。グライドがキャッシュオプションを提供する場合、画像は2度目に即座に表示されますが、最初にダウンロードするのを待つ必要があります。 –
はい、グライドが初めてダウンロードしています。しかし、私の問題は初めてではありません。 2回目と私は、画像がすべてダウンロードされていることを確認しました。すべてダウンロードされていても、スクロールでは即時ではありません。 – denno