Android raw与assets区别

举报
福州司马懿 发表于 2021/11/19 06:07:00 2021/11/19
【摘要】 一、res/raw和assets的相同点: 1、两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。 二、res/raw和assets的不同点: 1、res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java...

一、res/raw和assets的相同点:

1、两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

二、res/raw和assets的不同点:

1、res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。

2、res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹

三、读取文件资源:

1、读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作

InputStream is = getResources().openRawResource(R.id.filename);

2、读取assets下的文件资源,通过以下方式获取输入流来进行写操作

AssetManager am = null;

am = getAssets();

InputStream is = am.open("filename");

另外:

(1)如果用videoview来播放raw下的文件:

VideoView.setVideoUri(Uri.parse("android.resource://" + getpackageName() + "/" + R.raw.movie));

(2)webview加载assets下的html文件

tipsWebView.loadUrl("file:///android_asset/html/tips.htm");

文章来源: blog.csdn.net,作者:福州-司马懿,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/chy555chy/article/details/52093968

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。