如何访问我放入 res 文件夹中的原始资源?
在 J2ME 中,我是这样做的: getClass().getResourceAsStream("/raw_resources.dat");
但是在android中,我总是得到null,为什么?
In J2ME, I've do this like that:getClass().getResourceAsStream("/raw_resources.dat");
But in android, I always get null on this, why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
这对我有用:
getResources().openRawResource(R.raw.certificate)
This worked for for me:
getResources().openRawResource(R.raw.certificate)
这将正常工作。在此之前,您必须在原始资源中创建 xml 文件/文本文件。然后就可以访问了。
编辑
有时,如果布局文件或图像名称有任何错误,com.andriod.R 将会被导入。因此,您必须正确导入包,然后才能访问原始文件。
This will work correctly. Before that you have to create the xml file / text file in raw resource. Then it will be accessible.
Edit
Some times com.andriod.R will be imported if there is any error in layout file or image names. So You have to import package correctly, then only the raw file will be accessible.
getClass().getResourcesAsStream()
在 Android 上运行良好。只需确保您尝试打开的文件正确嵌入到您的 APK 中(以 ZIP 形式打开 APK)。通常在 Android 上,您将此类文件放在
assets
目录中。因此,如果您将raw_resources.dat
放入项目的assets
子目录中,它将最终位于 APK 的assets
目录中,并且您可以使用:还可以自定义构建过程,以便文件不会落在 APK 的
assets
目录中。getClass().getResourcesAsStream()
works fine on Android. Just make sure the file you are trying to open is correctly embedded in your APK (open the APK as ZIP).Normally on Android you put such files in the
assets
directory. So if you put theraw_resources.dat
in theassets
subdirectory of your project, it will end up in theassets
directory in the APK and you can use:It is also possible to customize the build process so that the file doesn't land in the
assets
directory in the APK.TextView01::线性布局中的txtview
hello:: res/raw 文件夹中的 .txt 文件(您也可以访问其他文件夹)
Ist 2 行是在 onCreate() 方法中编写的 2 行,
其余部分将在扩展 Activity 的类中编写!
TextView01:: txtview in linearlayout
hello:: .txt file in res/raw folder (u can access ny othr folder as wel)
Ist 2 lines are 2 written in onCreate() method
rest is to be written in class extending Activity!!
Android 访问原始资源
一种高级方法是使用 Kotlin 扩展函数
一件更有趣的事情是在 Closeable 范围中定义的扩展函数 use
例如,您可以以优雅的方式使用输入流,而无需处理异常和内存管理
Android access to raw resources
An advance approach is using Kotlin Extension function
One more interesting thing is extension function use that is defined in Closeable scope
For example you can work with input stream in elegant way without handling Exceptions and memory managing
在某些情况下,我们必须使用图像名称而不是生成的 id 从可绘制或原始文件夹中获取图像
In some situations we have to get image from drawable or raw folder using image name instead if generated id
对于原始文件,您应该考虑在 res 目录中创建一个原始文件夹,然后从您的 Activity 中调用
getResources().openRawResource(resourceName)
。For raw files, you should consider creating a raw folder inside res directory and then call
getResources().openRawResource(resourceName)
from your activity.