2011-05-10 29 views
5

有沒有辦法限制使用Android上的managedQuery功能從mediastore檢索到的結果。由於我目前有一個網格顯示在SD卡上找到的所有照片,但它太強烈的提取它,所以我決定限制從媒體存儲檢索的結果,但無法找到一個限制功能,可以減少產生的數據集。僅從媒體庫獲取前100行圖像

請幫

回答

22

使用順序ContentResolver的的查詢方法來實現你的功能, 如「列名ASC數量限制」

在我的情況

cursor = resolver.query(STORAGE_URI, projection, 
         Media.BUCKET_DISPLAY_NAME + "=?", 
         new String[] { folderName }, 
         " _id asc limit " + num); 
+1

,你需要「 ASC」部分,你可以不要把「限制N」。 – 2013-11-21 22:13:10

+0

請確保不要使用字符串格式創建參數,因爲它默認執行本地化,即以下語句將在阿拉伯語手機上導致SQL異常:'String sortOrder = String.format(「_id asc limit(%d)」,num );' – 2014-06-25 07:53:57

+0

@TomSusel寧可不要依賴默認的語言環境:) – 2014-10-31 12:49:22

2

您可以使用中將sortOrder參數query法限制的結果。像這樣的東西

ContentResolver contentResolver = getContentResolver(); 
Cursor androidCursor = null; 
String sortOrder = String.format("%s limit 100",BaseColumns._ID); 
androidCursor = contentResolver.query(IMAGE_URI,PROJECTION, null, null, sortOrder); 

這將命令由id設置的結果並限制結果。