如何从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; } 

如果有人想知道

  • Android - getIdentifier总是返回0(库+应用程序)
  • R.id值的范围
  • 获取Android文件资源的大小?
  • Android资源的数量有哪些限制?
  • 在Android应用中放置包含数据的XML文件的位置
  • 您必须为TextView安全系统错误提供资源ID
  • 在Android应用程序中加载资源时启动屏幕
  • Android:如何在应用程序终止时释放资源?
  • 通常,您可以使用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或启动新线程来执行此操作。