В основном я пытаюсь создать список контактов, подобный тому, который предоставлен Android. При заполнении представления списка элементами с помощью SimpleCursorAdapter вы можете легко получить все имена, которые будут отображаться в R.id.textview каждого элемента:
private void fillData() {
mCursor = mDbAdapter.fetchAllContacts();
startManagingCursor(mCursor);
String[] from = new String[] {DBAdapter.KEY_NAME};
int[] to = new int[] {R.id.contact_name};
SimpleCursorAdapter contacts = new SimpleCursorAdapter(this, R.layout.contact_view, mCursor, from, to);
this.setListAdapter(contacts);
}
Нечто подобное. Я искал и нашел пример кода как для получения изображений из Интернета, так и для отображения заданного количества изображений в элементах (например, вы знаете, что у вас есть 5 элементов, поэтому вы получаете 5 подходящих изображений). Но я действительно не знаю, с чего бы начать получать изображения со своей SD-карты и отображать их в нужном месте. Изображения названы в соответствии с идентификатором контакта, поэтому у меня есть возможность назвать нужное изображение.
Толчок в правильном направлении был бы очень признателен, спасибо!
РЕДАКТИРОВАТЬ: @ Джефф Гилфелт дал отличный ответ, но я пошел вперед и слишком рано заговорил, сказав, что я могу выяснить остальное самостоятельно ... ха-ха. У меня есть изображение по умолчанию, объявленное в xml для контактов, как это делает Android. Когда я реализую новый адаптер, он как бы сжимает элементы в ничто, я полагаю, потому что он находит пустое растровое изображение в этом месте. Поэтому я сделал следующее:
@Override
public void setViewImage(ImageView v, String id) {
File root = Environment.getExternalStorageDirectory();
File path = new File(root, "path/images/thumbs/"+id+".jpg");
if(path.exists()) {
Bitmap bitmap = BitmapStatic.getThumb(id);
v.setImageBitmap(bitmap);
}
else {
super.setViewImage(v, id);
}
}
Но это тоже не помогает. Есть идеи?
РЕДАКТИРОВАТЬ2: Выяснил вышеупомянутую проблему. Просто идите так:
else {
Resources res = mContext.getResources();
Drawable drawable = res.getDrawable(R.drawable.default);
v.setImageDrawable(drawable);
}
Надеюсь, это поможет другим! Помните, что для этого решения вам нужно будет добавить член Context var и строку mContext = context
в конструкторе.