如何从assets文件夹中获取所有文件

我想使用下面的代码获取我的资源文件夹中的所有图像

private List getImage() { /* 设定目前所在路径 */ List it=new ArrayList(); File f=new File("file:///android_asset/"); File[] files=f.listFiles(); Log.d("tag", "读取asset资源"); /* 将所有文件存入ArrayList中 */ for(int i=0;i<files.length;i++) { File file=files[i]; if(getImageFile(file.getPath())) it.add(file.getPath()); } return it; } private boolean getImageFile(String fName) { boolean re; /* 取得扩展名 */ String end=fName.substring(fName.lastIndexOf(".")+1, fName.length()).toLowerCase(); /* 按扩展名的类型决定MimeType */ if(end.equals("jpg")||end.equals("gif")||end.equals("png") ||end.equals("jpeg")||end.equals("bmp")) { re=true; } else { re=false; } return re; } 

不知怎的,我不确定这个expression方式

 File f=new File("file:///android_asset/"); 

好吧,我知道当你从资源文件夹中读取一个txt文件或html文件时你可以使用它,但是图像也会接受这个吗?

我通过使用下面的代码解决了这个问题

 private List getImage() throws IOException { AssetManager assetManager = getAssets(); String[] files = assetManager.list("image"); List it=Arrays.asList(files); return it; } 

如果有人想知道

通常,您可以使用AssetManager管理资产文件夹中的文件。 在活动中,调用getAssets()方法以获取AssetManager实例。

编辑:您可以使用AssetManager读取如下图像:

 AssetManager am=this.getAssets(); try { Bitmap bmp=BitmapFactory.decodeStream(am.open("009.gif")); chosenImageView.setImageBitmap(bmp); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

请注意,默认情况下, BitmapFactory.decodeStream()方法在UI线程上运行,因此如果图像太大,应用程序将会卡住。 在这种情况下,您可以更改samplesize或启动新线程来执行此操作。