android studio 添加assets目录

相信大家在使用Android studio的时候会发现,在新建的项目中并找不到assets目录,就如下图所示:

android studio 添加assets目录_第1张图片

这时候就想着要自己新建一个assets目录,可是要新建在哪里呢?点击上图中app.iml文件:按 Ctrl+F键弹出快速搜索:ASSETS_FOLDER_RELATIVE_PATH

你就能找到下面configuration根下的

option name=”ASSETS_FOLDER_RELATIVE_PATH” value=”/src/main/assets”

android studio 添加assets目录_第2张图片

然后你就知道为什么在main根下新建assets目录了,新建完如下:


现在就可以将要载入的文件放入该目录下,不过问题又来了,在Eclispe中,这个目录的位置在res/下面,但到了Android Studio中,这个assets目录必须放在跟java和res同级目录下,该如何读取文件:

1. 获取AssetManager

 AssetManager am = context.getAssets();

2. 

列出assets目录下,image目录下的所有文件:

String[] filePathList =assetManager.list("image");
android studio 添加assets目录_第3张图片

将所有资源移出到assets目录下,列出assets目录下所有文件

android studio 添加assets目录_第4张图片

 String[] filePathList =assetManager.list("");

效果如下图,除了资源文件,还列出空文件夹名,至于为什么少了txt文件夹名,多了sounds,webkit两个文件夹,本人认为是Android自带了,

希望知情的大神能给个解答

android studio 添加assets目录_第5张图片

接下来就是读取具体文件:如下读取test.txt:

 try {
                    //调用其open 方法取得  对应的inputStream对象
                    InputStream is = assetManager.open("txt/"+text);
                    int count=0;
                    while (count==0){
                        count=is.available();//取得数据流的数据大小
                    }
                    byte[] bytes=new byte[count];
                    is.read(bytes);
                    is.close();
                    String toTxt=new String(bytes);
                    tv_assetsItem.setText(toTxt);
                } catch (IOException e) {
                    e.printStackTrace();
                }
读取图片:

try  
      {  
          InputStream is = am.open(fileName);  
          image = BitmapFactory.decodeStream(is);  
          is.close();  
      }  
      catch (IOException e)  
      {  
          e.printStackTrace();  
      }  
  
assets与raw的区别:
http://www.cnblogs.com/pang123hui/archive/2013/11/06/3411523.html





你可能感兴趣的:(Android,studio,篇,Android,assets,raw)