在SD卡中创建视频文件的缩略图

时间:2012-03-16 09:05:08

标签: android

我无法创建我放置在模拟器的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;

2 个答案:

答案 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" />