我正在尝试通过图像创建游戏地图,其中每个黑色像素相当于一个墙,黄色相当于花(1)和绿草(0) 到目前为止我有这个图像(50x50): http://i.imgur.com/Ydj9Cp2.png
这里的问题似乎是,当我在我的代码上读取图像时,它会被缩放到100x100,即使很难在原始文件夹上使用它。我不能让它放大或缩小,因为这会在图像上产生噪点和模糊,然后地图将无法读取。
这里我有我的代码:
(...)
Bitmap tab=BitmapFactory.decodeResource(resources, com.example.lolitos2.R.raw.mappixel);
//tab=Bitmap.createScaledBitmap(tab, 50, 50, false);
Log.e("w", tab.getWidth()+"."+tab.getHeight());
for (int i = 0; i < tab.getWidth(); i++) {
for (int j = 0; j < tab.getHeight(); j++) {
int x = j;
int y = i;
switch (tab.getPixel(x, y)) {
// se o é uma parede
case Color.BLACK:
getParedes()[x][y] = new Parede(x, y);
break;
case Color.GREEN:
fundo.add(new Passivo(x,y,0));
break;
default:
fundo.add(new Passivo(x,y,1));
}
}
}
如何在不重新缩放图片的情况下阅读我的图片地图?
答案 0 :(得分:3)
将它们放在drawable-nodpi
文件夹中,而不是放在raw
中,然后将它们读作其他任何BitmapDrawable
。
如果您有一些可绘制的资源,系统永远不应该扩展 (也许是因为你自己对图像进行了一些调整 运行时),你应该将它们放在一个带有nodpi的目录中 配置限定符。考虑具有此限定符的资源 密度不可知,系统不会扩展它们。
(来自http://developer.android.com/guide/practices/screens_support.html)
(如有必要,还有其他方法,例如,您可以为inDensity
的选项提供BitmapFactory.decodeResource
参数。
答案 1 :(得分:-2)
问题出在以下一行
tab = Bitmap.createScaledBitmap(tab,50,50,false);
将这些50更改为更大的数字。
就像我帮助过你一样 感谢