1

私は、(URL からの) 画像のリストと ListView 内のいくつかのテキストを表示するアプリケーションに取り組んでいます。そのように見えます(+はイメージです):

-------------------------
|   +++       some text |  
|   +++       some text |  
-------------------------
|   +++       some text |  
|   +++       some text |  
-------------------------
|   +++       some text |  
|   +++       some text |  
-------------------------
|   +++       some text |  
|   +++       some text |  
-------------------------

特定の Web ページのソース コードを含む文字列を解析して URL とテキストを取得しています。また、HttpGet 要求を使用してそのソース文字列を取得しています。

したがって、このアプリケーションは Web ページをダウンロードして解析し、いくつかの画像をダウンロードしてリストに表示する必要があります。

最後の部分はよくわかりません。asynctask を使用して html ソース コードをダウンロードして解析することはできましたが、残りの作業は少し難しいです。

どうやってやるの?

(これが十分に明確だったことを願っています)

編集:

より正確になるように努めます :) MediaObject という 3 つの文字列 (画像 URL、曲名、曲のアーティスト) を持つオブジェクトを作成しました。文字列 (html ソース コードを保持する) を取得し、そこから URL と名前を抽出し、MediaObject オブジェクトの配列を返す関数も作成しました。

現時点では、2 つの asynctasks を使用して 1 曲のみを表示しています。2) 画像をダウンロードし、画像ビューで表示します。

正常に動作しますが、1 つの MediaObject に対してのみです。リストビューにいくつかの曲を表示したい (いくつかの MediaObject オブジェクトを使用)。

問題は、それを行う方法がわからないことです。複数の asynctasks を使用する必要がありますか? すべての画像の新しい asynctask ?

4

2 に答える 2

1

まず、それをバラバラに分割します。まとめて考えないでください。私は、次をお勧めします。

  • junit テスト ケースを作成し、http 呼び出しを行い、画像リンクを解析して抽出します。
  • ここで、新しい android junit テスト ケースを作成し、上記のコードを非同期タスクに入れ、画像を 1 つだけ含むレイアウトを作成し、その上に画像をレンダリングします。
  • これで、アプリに統合する準備が整いました。

junit の考え方は、このコードを初めて書いているので、このコードを書いて、すばやく連続してテストできるようにすることです。開発のスピードが非常に重要であることを覚えておいてください。

ここで非同期タスクの興味深い例を見つけました。

あなたの質問に関しては、あなたが行っている http 呼び出しの種類とそれが提供するリターンの種類をより明確にする必要があります。Json、XML、何?

于 2012-11-09T02:55:17.827 に答える
1

リンクをチェックしてください。ここに showImage() という名前の関数があります。この関数は URL をパラメーターとして受け取り、画像ビューに設定するために使用できるビットマップを返します。また、画像を表示するためのカスタム リスト ビューについては、ここのようにリストをカスタマイズし、 imageview1.setImageBitmap(bm); のようなものを使用して画像を設定する必要があります。

于 2012-11-09T02:56:56.810 に答える