Android openRawResource()不适用于drawable

时间:2014-08-29 16:45:27

标签: android image inputstream drawable

我正在尝试通过这样做来创建输入流

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

但是我遇到了关于我的可绘制文件(R.drawable.image1)的错误“原始类型的预期资源”。 image1是一个png,位于我的res / drawable文件夹中。

任何想法???

3 个答案:

答案 0 :(得分:34)

@Broatian我目前没有res / raw文件夹。我找到了另一种解决方案: is = context.getResources().openRawResource(+ R.drawable.image1); +显示其他文件夹。谢谢你的帮助!

答案 1 :(得分:5)

如果要使用此方法打开png,则必须将其放在res / raw文件夹中。然后,您将能够使用R.raw.image1。

访问png

另一种方法是将其保存在drawable文件夹中,然后将drawable转换为InputStream。见How to read drawable bits as InputStream

我假设您知道如何获取drawable,否则请查看参考资料文档。

答案 2 :(得分:0)

这是因为他们期待一个原始类型资源而你正在传递一个可绘制的类型资源。 在res文件夹中创建一个原始文件夹,然后将您的图像放在原始文件夹中。