这里面临着排序文件的问题。从文件夹资产中选择文件。如何按升序排序文件? 这是我的代码:
//fillGrid
private void fillGridAdapter(int cat) {
ASSETS_IMAGE_DIR = imagePath[cat];
addImages(getImages(imagePath[cat]));
}
//Adds the files
private void addImages(String[] temp){
imBitmap = new Bitmap[temp.length];
if(temp != null) {
for(int i = 0; i < temp.length; i++){
try {
imBitmap[i] = getBitmapFromAsset(imagePath[g.getImageCat()]+"/"+temp[i]);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
private String[] getImages(String f){
try {
AssetManager assetManager = getResources().getAssets();
String[] temp = assetManager.list(f);
Arrays.sort(temp);
return temp;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
在assetManager.list(f)之后[] temp - (1.jpg,10.jpg,12.jpg ... 9.jpg)。在Arrays.sort(temp)之后 - (1.jpg,10.jpg,12.jpg ... 9.jpg)。我需要 - 1.jpg,2.jpg,3.jpg ... n.jpg。
答案 0 :(得分:0)
使用Arrays.sort(T[] a, Comparator c)
以下是http://www.coderanch.com/t/378718/java/java/sort-array-files-directories
的示例答案 1 :(得分:0)
听起来你想要将文件按数字顺序排序......而不是词汇顺序。
要实现此目的,您需要将路径名拆分为数字和非数字段。对于数字段,您需要将段解析为整数并根据整数值进行排序。
看起来您的文件格式为<number>.<suffix>
,因此拆分应该很简单。
此逻辑需要在compare
的{{1}}方法中实施,并为Comparator
提供参数。