2
我正在使用MediaStore.Video.Thumbnails.getThumbnail()
方法 獲取我在列表中顯示的文件的縮略圖。這工作 以及開始,但一段時間後,我回來 縮略圖不是匹配的文件。一旦GetThumbnail()
開始 失敗它似乎只是一次又一次返回相同的位圖, 無論我嘗試哪個文件。這發生在我的HTC Desire上,運行Android 2.2的 ,並且很難重現 - 它會在一段時間後纔開始發生。Android 2.2 GetThumbnail返回不正確的位圖
這裏是(一個削減的版本)我的源代碼:
static public Bitmap GetThumbnailForFile(File p_File, Activity
p_activity)
{
long imageID = GetImageID(p_File, p_activity);
if (imageID < 0)
{
return null;
}
return
MediaStore.Images.Thumbnails.getThumbnail(p_activity.getContentResolver(),
imageID, Thumbnails.MICRO_KIND, null);
}
public static long GetImageID(File p_File, Activity p_activity)
{
long result =-1;
Cursor c =
p_activity.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[]{MediaStore.Images.Media._ID +""},
MediaStore.Images.Media.DATA +" like '" + p_File.getAbsolutePath(),
null, null);
c.moveToNext();
if (!c.isAfterLast())
{
result = c.getLong(0);
}
c.close();
return result;
}
我也做加載視頻縮略圖同樣的事情。我用 一些調試代碼來檢查由GetImageID(), 返回的值,我很確定它們是正確的。
任何人都可以看到我可能做錯了什麼?或者知道爲什麼 縮略圖在一段時間後無法正常生成?
感謝您的回答!我在那裏有一些代碼,通過用逃脫的等價物替換字符來保護SQL注入。這有點凌亂,所以我拿出來簡化代碼 - 看起來我拿出了其中一個。你在這裏使用的方式更好,所以我會改變我的代碼來做到這一點。我不認爲這會解決我的問題,因爲它似乎總是回來正確。 – Auber 2010-09-30 11:03:09