2013-10-02 51 views
1

對於我正在構建的Android應用程序(Android 4.0.3),我試圖獲取位於文件夾中的圖像文件名列表本地存儲。這是準確的,但是,我的圖像以錯誤的順序列出 - 它們以字符串形式排列,我需要它們作爲數字排序(因爲我的文件名包含數字,而不是字符/單詞),它們的命名方式如下所示: 0.jpg,1.jpg,2.jpg等 - 一直到11.jpg,12.jpg等。但是,使用下面的函數返回的列表被命令爲0.jpg,1.jpg ,11.jpg,12.jpg,2.jpg,3.jpg等。這不太好,我需要按照邏輯數字排序,而不是字符串。將圖像文件名稱列爲數字而不是字符串(在Android上)

有沒有人有任何想法做到這一點?

非常感謝!

public BitmapProvider2() 
      { 
        Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; 
        String selection = Images.Media.DATA+" LIKE ?"; 
        String[] selectionArgs = {mCurrentDir+"%"}; 
        final String orderBy = MediaStore.Images.Media.TITLE; 
        mImageCur = managedQuery(uri, null, selection, selectionArgs,orderBy); 
        if (mImageCur == null) 
         return; 
        // int column_index = mImageCur.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
        mImageCur.moveToFirst(); 
        mImagesCount = mImageCur.getCount(); 
      } 
+0

檢查此問題:http://stackoverflow.com/questions/22705332/how-to-sort-files-using-datetimestamp-or-counter-values – Sun

回答

0

之所以這樣返回是因爲你的文件名是一個字符串而不是數字。所以11.jpg會在2.jpg之前。

爲了解決這個問題,可以使用Compareable比較器將其排序後使用Collections.sort(); ,和/或你可以修剪'.jpg'並解析爲int,然後排序。

+0

檢查此問題:http://stackoverflow.com/questions/22705332 /如何到排序文件 - 使用 - datetimestamp-或計數器值 – Sun

相關問題