在Android中加载图像而不进行自动缩放

时间:2014-06-03 03:05:01

标签: android image resize bufferedimage

我正在尝试通过图像创建游戏地图,其中每个黑色像素相当于一个墙,黄色相当于花(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));
            }

        }
    }

如何在不重新缩放图片的情况下阅读我的图片地图?

2 个答案:

答案 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更改为更大的数字。

就像我帮助过你一样 感谢