1

特定のテキストを含む 50/100 の画像 URL があり、それらをベクターに追加し、コールバックでリストフィールドを追加し、

関数呼び出し UrlToImage を使用して毎回画像をダウンロードしています。問題に直面しています。リストが遅すぎます。ダウンロード アイコンがシミュレータの右上に表示されます。

UrlToImage img = new UrlToImage(imageUrl);
bit = img.getbitmap();
pic = new BitmapField(bit); 
g.drawBitmap(xpos, y+10, bit.getWidth(), bit.getHeight(), bit, DrawStyle.LEFT,0);

リスト全体をスムーズにスクロールできません。

任意のアイデア、コメント。

4

2 に答える 2

0

コードが paint メソッド内で実行されているように見えます。これはすべて UI スレッドで発生します (ペイントが発生するたびに、UI をブロックし、要求を行い、応答を待ち、画像を設定し、画像を描画することを意味します)。リクエストには約 3 秒かかることがあるため、UI はその間フリーズします。

クラスのコンストラクターで画像をフェッチし、クラスのインスタンス変数を設定してから、そのインスタンス変数で g.drawBitmap を行う必要があります。

つまり、途切れ途切れのスクロールを防ぐために、ペイント メソッドのコードは g.drawBitmap だけにする必要があります。

于 2010-09-01T13:48:07.647 に答える
0

あなたのフォーマットはすべてめちゃくちゃですが、私があなたを正しく理解していれば、コールバックごとにダウンロードしていますか?

これを回避する 1 つの方法は、画面が必要なときに開始するスレッドを作成し、ダウンロードを非同期で (1 回ずつ!) 実行し、画像をキャッシュに保存することです。次に、drawListRow コールバックがキャッシュからプルします。

于 2010-08-31T20:14:37.260 に答える