@Damir - did you find a solution? I have a similar problem where I use Bitmap.createBitmap(...) successfully in the emulator, but the actual 2.2 device shows the wrong part of the bitmap image. I can only test on the emulator and one froyo device, so I don't know about 1.5 and 1.6 devices.
Specifically, the 'width' and 'height' variables seem to work, and the 'matrix' seems to work, but the wrong graphic ends up in the resulting bitmap, so I think the 'startX' and 'startY' variables are read incorrectly (by the function Bitmap.createBitmap). But what is a workaround?
In my application, also a game, a set of tiles is saved in a single png image. each of the tiles is 8 x 8, and the whole collection stores images that go together to make pillars and platforms and ladders. The program takes a number in a map and replaces this number with a tile from the tile sheet. This new arrangement of tiles represents the background in the game. (this is all similar to game systems like the nintendo DS). The android code seems to be taking 8 x 8 squares, so I suspect that the 'height' and 'width' are working, but the backgrounds show incorrect info inside the squares. Has anybody seen anything like this? Is there something about 2.2 that leads to this kind of behavior?