Android res/drawable、res/raw、/assets 资源文件区别及获取

文件放在res/drawable、res/raw、/assets下的区别

/res 下的文件是受android系统约束的,1、放在这个文件夹下,会被映射生成R文件,即访问时通过R.xx.xxx;2、只能有一层目录,再往底层建文件夹就访问不到了;3、打包时自动只打包用的上的文件,没用上的文件不打包;获取输入流的方式:InputStream in = getResources().openRawResource(R.raw.filename);

/assets 下的文件是不受Android的约束的,1、文件放在这个文件夹里,无论是否在项目中用到,会被原封不动的打包到APK; 2、由于没有生成R文件,只能通过路径+文件名(或单独文件名)访问;3、可建立多层次的文件夹(但一般没有这个必要) 获取输入流的方式:InputStream in = getAssets().open(“filename”);

res下的raw和其他文件夹的区别:

raw中的图片不会被压缩

drawable中的图片会被压缩

Android openRawResource()不适用于drawable

InputStream is = (InputStream) getResources().openRawResource(R.drawable.image1);

报错:可绘制文件(R.drawable.image1)的错误“原始类型的预期资源”。 image1是一个png,位于res / drawable文件夹中。
解决(3种方法)

  1. 将其放在res / raw文件夹中
  2. 将其保存在drawable文件夹中,然后将drawable转换为InputStream
  3. is = context.getResources().openRawResource(+ R.drawable.image1); 该 + 显示其他文件夹

参考:文件放在res/drawable、res/raw、/assets下的区别
Android openRawResource()不适用于drawable

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值