我正在尝试使用我在paint.net中创建的.png文件作为绘制画布的可绘制资源,但我注意到了一个问题......
我尝试创建一些500x500px的.png,我将它们像普通一样复制到res文件夹中,没有错误,编译得很好。
但是,当应用程序运行时,它应该将图像绘制为100x100px。
当在运行时检索drawable时,应用程序崩溃并出现空指针异常。
这里的罪魁祸首是什么?可绘图像太大了吗?或者重新调整图像大小是否有限制?
此外,res文件夹中的文件数量或一般的大小限制是否有限制?
编辑:好的,这里有一些代码,当然我要离开很多但是这里是jist:
以下是我创建句柄并为其提供正确资源的方法:
Drawable pic;
pic = context.getResources().getDrawable(R.drawable.picture);
以下是我将它绘制到画布的方式:
pic.setBounds(x, y, x + 100, y + 100);
pic.draw(c);
更新
这是驱动我的坚果! 问题显然是java或eclipse中的错误,即使它已本地化到我的机器上。 我做了一些实验,发现问题可能会受到影响。 假设我的drawable文件夹中有10张图片。除了数字7之外,所有图像都可以被引用而没有错误。我得到的错误的一个例子是,如果我删除数字6,将显示数字7但现在数字8将得到错误。这清楚地告诉我png文件本身没有错误,但问题是如何检索它们。它还与图像的顺序有关。我已经尝试了一切。清洁/构建不起作用。我甚至重新上传了整个可绘制文件,但错误仍然相同。
这几乎就像可绘制文件中的“漏洞”可以填充png一样,但是它们无法使用。并且在填充孔之后,文件按字母顺序填充后不在孔中。如果你明白我的意思。
我偶尔会遇到一个奇怪的错误,似乎突然间每个引用都会检索到错误的图像。例如:在10个图像的例子中,参考10将显示9,9将显示8,8将显示7,依此类推。在清理和重建之后,这个错误似乎消失了,但我不禁相信它的相关性。
答案 0 :(得分:0)
事实证明这个问题与图像本身没有任何关系,我没有完全缩小原因,但通过一些漫长,耗时的故障排除我发现图片不是问题,我个人有一些其他错误。我稍后会在这个主题上发布一个更具体的问题。