我在Android应用中设计了自定义ListView
,我的自定义列表项包含ImageView
和TextView
我有以下课程
public class Language {
private int id;
private String languageName;
}
和List<Language> languages;
现在我要做的是为每个语言项加载可绘制图像,然后在列表视图中显示列表。到目前为止,我已经完成了以下工作
String[] from = new String[]{"item_logo", "item_name"}; //mapping
int[] to = new int[]{R.id.li_logo, R.id.li_name}; //first one is id of my imageview
//the second one is id of my textview
List<HashMap<String, Object>> fillMaps = new ArrayList<>();
for (Language language : languages) {
HashMap<String, Object> map = new HashMap<>();
map.put("item_logo", getImage(language.getId()));
map.put("item_name", language.getLanguageName());
fillMaps.add(map);
}
listView = (ListView) findViewById(R.id.list_languages);
SimpleAdapter adapter = new SimpleAdapter(this, fillMaps, R.layout.list_item, from, to);
getImage方法将Web服务中的图像作为字节数组加载,然后将其转换为drawable,但listview不显示它。
此外,我发现如果我用本地drawable id替换方法调用,列表将开始显示drawable。
所以我的问题是,如果我有一个表示图像的字节数组,我怎样才能将它传递给listview,以便它开始显示它。
P.S。还有我的getImage方法如何将字节数组转换为drawable并返回
drawable = new BitmapDrawable(BitmapFactory.decodeByteArray(logoBlob, 0, logoBlob.length));
return drawable;