将图像分成多个图像

时间:2011-04-26 18:04:08

标签: android

我在网上寻求帮助,虽然它看起来像是一种解决方案,但事实证明它并没有那么好用。对于初学者,我想说我刚刚进入了android编程(这是我的第一天)我真的通过反复试验来学习我希望如果你能帮助我,你会给我提示而不是粘贴在我面前的代码。

我的瓷砖 http://img217.imageshack.us/img217/4654/tileseth.png 结果 http://img199.imageshack.us/img199/7913/resultx.png

我遇到的问题是1.它显然没有将图像分成32位32位。正是我想要实现的是拍摄我的大图像并将其分成9×32个32个部分的较小图像。次要的图像质量变得扭曲,我无法解决原因。 *我不想使用9补丁,因为很快就会出现9个以上的图片只是一个蠢货,我有9个图像

我的代码(显然是从互联网上剽窃)

    tilesetSliced = Bitmap.createScaledBitmap(bmp, 96, 96, true);
    tileset[0] = Bitmap.createBitmap(tilesetSliced, 0, 0, 32, 32);
    tileset[1] = Bitmap.createBitmap(tilesetSliced, 32, 0, 32, 32);
    tileset[2] = Bitmap.createBitmap(tilesetSliced, 64, 0, 32, 32);
    tileset[3] = Bitmap.createBitmap(tilesetSliced, 0, 32, 32, 32);
    tileset[4] = Bitmap.createBitmap(tilesetSliced, 32, 32, 32, 32); 
    tileset[5] =  Bitmap.createBitmap(tilesetSliced, 64, 32, 32, 32);    

一旦我开始工作,我会让它变得更有效率。<任何帮助都会很棒

抽签

public void onDraw(Canvas canvas) {
  //update();
   for(int x=0; x<= mapWidth; x++){
          for(int y = 0; y <= mapHeight; y++){
                   canvas.drawBitmap(tileset[map[x][y]], x *32, y*32, null);
           }
     }
}

确定更多的调试已经解决了一些事情1.我删除了停止质量被破坏的scaledbitmap(或者由于错误导致它)但是我发现由于某种原因它认为我的tileset的宽度是64它的96任何帮助都会很好。

1 个答案:

答案 0 :(得分:0)

您可以通过Bitmap Factory获得更多运气来生成tilesetSliced。其中包含一个Options类,可让您设置可用于缩小图像的样本大小(inSampleSize)。但是,它可能不足以满足您的需求。

由于缩小过程,您的图像可能会失真。您是否能够使用正确的尺寸创建这些图像或预先缩放它们?