如何仅选择图像文件?

时间:2014-11-01 08:31:49

标签: android image file random while-loop

我试图只选择图像文件然后我成功了, 但现在应用程序需要很长时间才能加载..

这是我的代码的一部分:

的onCreate:

filename(testimg);
            while (type != "jpeg" && type != "GIF" && type != "PNG"
                    && type != "BMP" && type != "WebP") {
                filename(testimg);
            }

文件名(功能):

public void filename(File filename) {
    abcd = filename.toString();
    File[] listFiles = filename.listFiles();
    Random r = new Random();
    File randomPicture = listFiles[r.nextInt(listFiles.length)];
    Uri pictureUri = Uri.fromFile(randomPicture);

    convertedPath = randomPicture.getAbsolutePath();

    if (convertedPath.lastIndexOf(".") != -1) {
        String ext = convertedPath
                .substring(convertedPath.lastIndexOf(".") + 1);
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        type = mime.getExtensionFromMimeType(mime
                .getMimeTypeFromExtension(ext));
        System.out.println(type);
    } else {
        type = null;
    }
    image.setImageURI(pictureUri);
}

所以即时通讯询问是否有更有效的方式?

2 个答案:

答案 0 :(得分:2)

 File[] listFiles = filename.listFiles( new FileFilter(){
@Override
public boolean accept(File file){
return file.isFile() && (file.getName().endsWith(".jpg") || file.getName().endsWith(".png")); //add more extensions if needed

}
});

答案 1 :(得分:0)

  

我试图只选择图像文件

为什么不使用OR?我认为这更好:

 while (type.equals("jpeg") || //more types) {
                filename(testimg);
            }

因为OR中的任何一个TRUE是{{1}},那么它就是一个图像文件。