本节课开始讲Android中所用到的一些资源,首先来讲assets资源,它是Android的其中一种资源,跟raw和drawable资源有点不同,我们获取这个目录下的文件需要指定文件的路径,它里面的文件不会映射到R.java文件中,而res目录下的资源文件时会自动映射到R.java中,我们打包成apk的时候,assets目录下的文件不会被编译成二进制文件,而是直接打包到apk文件中。我们可以打包项目成apk,然后更改它的后缀名为.zip,再进行解压,可以看到assets目录的文件。

上面是对assset资源的一些介绍,我们实际开发中如何获取assets目录下的资源呢:
1. 获取文件输入流
Context.getAssets().open(“filename”)
2. assets资源的绝对路径
file:///android_asset/文件名

比如在assets目录下有个test.txt文件,可以通过下面这种方式获取:

 assetsText.setText(getFromAssets("test.txt"));
 private String getFromAssets(String filename) {        String result = "";        try {            InputStream in = getResources().getAssets().open(filename);            int length = in.available();            byte[] buffer = new byte[length];            in.read(buffer);            result = EncodingUtils.getString(buffer, "UTF-8");        } catch (IOException e) {            e.printStackTrace();        }        return result;    }

思考:这里需要大家去区分Android的一些资源,像assets这种资源是不会被编译成字节码,然而像raw、drawable资源是Android指定的资源,可以通过R.xxx.filename来进行引用,如果在res自定义一个目录是不可以通过这种方式获取资源,引用的话会R.xxx.xxx cannot be resolved” 的错误。

这里补充一点就是,我们使用AS开发不会默认给我们创建assets目录,需要我们按一下方法去创建目录:

然后我们创建的项目有个.iml的配置文件,会有相应的配置,大家下去可以研究一下

更多相关文章

  1. PC客户端与Android服务端的Socket同步通信(USB)(转载)
  2. cocos2dx android mk 2.0.2编译文件目录以及导入库问题
  3. 【Android适配问题集锦-文件类】获取Android机型设备信息的适配
  4. [Android]电量优化之app算法
  5. android aar 包含静态库的打包
  6. Android应用程序大小上限增至4.05GB
  7. Android应用程序Zipalign化 -- 如何让Android应用程序更有效率的
  8. 【Android】缩略图Thumbnails
  9. Android基础学习第一天

随机推荐

  1. 感知机(python实现)
  2. conda不是内部或者外部命令
  3. 使用自定义qemu二进制文件与libvirt失败?
  4. MQTT协议应用:外网手机控制内网树莓派
  5. 没有这样的专栏:blog_article.date
  6. 在不知道序列长度的情况下,在Python中展开
  7. 开启我的Python量化之路
  8. 50. Pow(x,n) Leetcode Python
  9. 【机器学习算法-python实现】最大似然估
  10. 毕业设计-基于深度神经网络的语音关键词