-1

下の画像のようなカスタムリストビューを作成したいと思います。私はチャットアプリを作成しています。そのアプリでは、テキスト、画像、ビデオなどを渡す必要があります。下の画像を参照してください。

ここに画像の説明を入力

その中で、ユーザーがチャットで画像を送受信するときに、その画像の横にあるボタンをクリックしてそれを見たい場合、その画像パス (または) URL を使用して別のアクティビティに移動する方法、完全な画像を表示する方法、およびいつユーザーが画像をクリックすると、クイックビューが表示される必要があります。それがビデオの場合と同じように、ビデオを適切に再生するには、そのパス (または) URL を取得する必要があります。リスト アイテムの区別方法は、アイテム タイプによって異なります。

4

2 に答える 2

1

あなたはできる

  • そこにビューを実装ScrollViewして追加します。
  • 可能なすべてのビューを含むアダプターを作成し、非表示または表示するビューを決定します
  • アダプターを作成し、ビューを各行に動的に追加できます (この場合は遅すぎます)。

私の選択は#2です-可能なすべてのビューで行ビューを作成し、何を非表示にするかを決定します。この場合、毎回ビューを膨らませる必要がなく、ViewHolderパターンも使用できるため、時間を節約できます。

于 2013-02-12T11:31:48.850 に答える
1

音声、画像、およびテキスト メッセージに対して異なる行を表示する場合は、3 つの行レイアウトが必要getView()ですCustomAdapter。行をリサイクルして に表示するのに役立つ2 つの方法がありgetViewTypeCount()ますgetItemViewType()ListView

ListView最初に、使用するレイアウトgetViewTypeCount()の数をアダプタに伝えます。これは、そこにある行タイプの数をアダプタに伝えます。次に、データ モデルのその位置にどのような種類のデータが存在するかを確認し、からビュー タイプを返しgetItemViewType()ますgetView()。関連する再利用されたビューを受け取ります (存在する場合)。

これは、9 つ​​のパッチ イメージの使用に関する私のブログ投稿です。これは、送信側と受信側のビューのタイプを示しています。特定の位置にあるデータ モデルの項目に基づいて、同じことが画像と音声に適用できます。

于 2013-02-12T11:38:58.370 に答える