难以从Hashmap检索位图

时间:2015-10-15 16:55:57

标签: java android hashmap

我已经以这种方式将视频缩略图存储在散列图中:

HashMap cacheBitmap = new HashMap<String, Bitmap>(filesArry.length);
for(String string:filesArry) {
        cacheBitmap.put(string, ThumbnailUtils.createVideoThumbnail(fpath + string, MediaStore.Video.Thumbnails.MINI_KIND));
    }

filesArry是一个字符串数组,其中包含每个缩略图的视频名称。

问题出在getView(...)方法中:

ImageView imageThumbnail = (ImageView)row.findViewById(R.id.Thumbnail);
imageThumbnail.setImageBitmap(cacheBitmap.get(filesArry[position]));

它在get(...)下给出错误说:&#34; ImageView中的setImageBitmap(android.graphits.Bitmap)无法应用于(java.lang.Object)

我尝试将Hashmap<String, Bitmap>中的位图更改为Drawable并更改为Object,但这似乎无法解决错误。

感谢任何想法。

1 个答案:

答案 0 :(得分:4)

声明中缺少类型参数:

HashMap cacheBitmap = ...

将其更改为:

HashMap<String, Bitmap> cacheBitmap = ...

如果没有这个,该类型实际上是HashMap<Object, Object>,这就是get方法返回Object类型而不是Bitmap的原因。修复声明将解决您的问题。

更进一步,您的声明将更好地使用接口类型而不是实现:

Map<String, Bitmap> cacheBitmap = ...