Android assets目录资源读取

来源:互联网 发布:大数据资格认证doop 编辑:程序博客网 时间:2024/05/17 17:54

Android 应用程序内置资源放到assets文件夹下,可在里面新建目录,注意资源和目录不能有中文,获取资源的方法如下:

1. 用getResources().getAssets()方法得到AssetManager对象

2. assetManager.list("") 得到assets文件夹下所有文件名。如果assets文件夹里有文件夹叫xml,得到文件名的方法为assetManager.list("xml"),路径都是相对assets路径的。

3. 如果在assets文件夹下的文件夹为空文件夹,获取assets下文件名时会忽略空文件夹。

4. 在assets文件夹下影藏了3个带文件的文件夹,分别是images、sounds、webkit。images里面有两张png格式图片,图片如图:

示例代码:

    private void copyAssetsToFiles(Context context) {        String[] files;        try {            //注意:在assets文件夹下影藏了三个带文件的文件夹,分别是images、sounds、webkit            //返回数组files里面会包含这三个文件夹            files = context.getResources().getAssets().list("");        } catch (IOException e1) {            return;        }        String File_PATH = context.getFilesDir().getPath() + "/";        File mWorkingPath = new File(File_PATH);        if (!mWorkingPath.exists()) {            mWorkingPath.mkdirs();        }        for (int i = 0; i < files.length; i++) {            try {                String fileName = files[i];                File outFile = new File(mWorkingPath, fileName);                if (outFile.exists()) {                    continue;                }                InputStream in = context.getAssets().open(fileName);                OutputStream out = new FileOutputStream(outFile);                byte[] buf = new byte[1024];                int len;                while ((len = in.read(buf)) > 0) {                    out.write(buf, 0, len);                }                in.close();                out.close();            } catch (FileNotFoundException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }        }    };


0 0
原创粉丝点击