我无法创建我放置在模拟器的SD卡中的视频文件的缩略图。 我收到的消息是:
03-16 14:31:32.646: ERROR/MiniThumbFile(19847): Unable to create .thumbnails directory /mnt/sdcard/DCIM/.thumbnails and a null pointer exception.
if (convertView == null) {
iView = new ImageView(mContext);
System.out.println("The path to the video" + filePath);
Bitmap map = MediaStore.Images.Thumbnails.getThumbnail(
getContentResolver(), position,
MediaStore.Video.Thumbnails.MICRO_KIND, null);
System.out.println("map^^^^^^^" + map);
iView.setImageBitmap(map);
iView.setLayoutParams(new GridView.LayoutParams(96, 96));
iView.setPadding(8, 8, 8, 8);
} else {
}
return convertView;
答案 0 :(得分:2)
我认为这里有一个问题(尽管最好看一下调用的完整方法),关于NullPointer的问题是,虽然你正在检查convertView
是否为null,但是你没有做任何事情。它然后返回相同的convertView(首次调用时为null)。
鉴于视图的名称(convertView
),我假设您正在从适配器实现getView(...)
方法。在此处返回null对象将为您提供NullPointerException
。
为避免这种情况,请尝试这样做:
if (convertView == null) {
iView = new ImageView(mContext);
iView.setLayoutParams(new GridView.LayoutParams(96, 96));
iView.setPadding(8, 8, 8, 8);
} else {
iView = (ImageView) convertView;
}
Bitmap map = MediaStore.Images.Thumbnails.getThumbnail(
getContentResolver(), position,
MediaStore.Video.Thumbnails.MICRO_KIND, null);
iView.setImageBitmap(map);
return convertView = iView;
至于其他错误,没有更多信息很难说清楚。
另外,你是在设备上试过吗?
答案 1 :(得分:0)
添加到pablisco的答案并特别注意“无法创建.thumbnails目录”:
检查您的清单是否有权写入外部存储:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />