У меня есть приложение для Android, работающее с облачными конечными точками Google. Один из моих действий отправляет запрос в хранилище данных, чтобы получить список объектов Message
. Этот объект имеет поле byte[]
, которое содержит уменьшенное изображение. Есть еще два поля: Автор и Временная метка.Как использовать ImageView с SimpleAdapter?
Затем в действии должен отображаться ListView, отображающий как миниатюры, так и поля автора и метки времени. Вот мой текущий код, который отображает только некоторые из моих ресурсов изображения и автор/временных меток поля:
messages_list_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/messages_thumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="7dp"
android:layout_marginTop="7dp"
android:background="@null"
android:src="@drawable/photo" />
<TextView
android:id="@+id/messages_author"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/messages_thumbnail"
android:layout_marginLeft="7dp"
android:layout_toRightOf="@id/messages_thumbnail"
android:textColor="#303030" />
<TextView
android:id="@+id/messages_timestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/messages_thumbnail"
android:layout_alignParentRight="true"
android:layout_marginRight="7dp"
android:textColor="#303030" />
А теперь часть, где я управлять SimpleAdapter с Список Hashmap:
final List<HashMap<String, Object>> messages = new ArrayList<HashMap<String, Object>>();
List<Message> listmessages = messagesCollection.getItems();
for (Message message : listmessages) {
HashMap<String, Object> element;
element = new HashMap<String, Object>();
byte[] miniature = message.decodeMiniature(); //what to do with this?
element.put("AUTHOR", message.getAuthor());
element.put("TIMESTAMP", message.getTimestamp());
messages.add(element);
}
ListAdapter simpleAdapter = new SimpleAdapter(context,
messages, R.layout.messages_list_layout,
new String[] { "AUTHOR", "TIMESTAMP"},
new int[] { R.id.messages_author, R.id.messages_timestamp });
listView_messages.setAdapter(simpleAdapter);
Он отлично работает, спасибо. – Kritias