私は長年StackOverflowにアクセスしてきましたが、問題を解決できる投稿が見つからないのは初めてです(少なくとも何も表示されませんでした)。
とがGridView
作成したカスタムビューを返すためにオーバーライドしたカスタムアダプタを使用していImageView
ますTextView
。
JSONを使用してURLから画像を解析し、AsyncTask
すべての情報をメソッドに格納しArrayList
、doInBackground()
メソッドを呼び出しnotifyDataSetChanged()
た後、画像を読み込みますonPostExecute()
。すべて順調。
私の問題は、アクティビティを起動すると、グリッドビューが作成され、エンティティ内のユーザーに表示されるまでに5〜10秒かかることです。最初にテキスト情報を含むグリッドビューを表示してから、各画像をロードする方法があるかどうか疑問に思っています。両方とも同じ方法で作成されているため、これは可能ですか?
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
View v = null;
if (arg1 == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.custom_product_view, null);
} else {
v = arg1;
}
iv = (ImageView) v.findViewById(R.id.product_image);
imageLoader.DisplayImage(products.get(arg0).getImage(), iv);
TextView tv = (TextView) v.findViewById(R.id.product_price);
tv.setText(products.get(arg0).getPrice());
return v;
}
DisplayImage()
また、この遅延読み込みを実装した方法からわかるように、ListViewでの画像の遅延読み込みについてもお知らせする必要があります。正常に動作しますが、ビュー全体が再度読み込まれます。私がやりたいのは、アクティビティを起動し、最初にキャプションをロードしてから、ダウンロードが完了すると画像がロードされることです。このコードを使用すると、グリッドビューのすべてのセルに含まれるビュー全体を遅延ロードするだけです。以前のように一度にすべての画像をダウンロードするわけではないので、数秒稼ぎましたが、それでも私が探しているものではありません。
どうもありがとう。