Looking for advice with the next problem. I am developing small game and I have a *.png file for background. I need to put it to background of the main game screen. Moreover, it has to bee 2 times bigger in width and 1.5 times bigger in height as the screen’s sizes, because my objects “flight” across these borders. Additionally the screen is moving around this background in a gameplay. But I have stuck a bit on how to do it.
I want my background to look similar on all screens with different sizes and densities. I have tried some solutions but I don’t like them, or I have made something wrong:
-
Make different background images and put them in special folders. It sounds good, but with the amount of resolutions of Android devices in the market it is not sounds good for me. It will just make the size of *.apk bigger. And if I will use the methods to set background it will stretch the image – not a good idea I think.
-
In the
onDraw()method draw the image on canvas. I have to put it’s top-left corner to the most top-left corner of the possible game area and draw it. But, here is some options:- cut from the main image the image i want and draw only this piece (what I use now)
- resize the image I have and draw with this changes
- something else…
So, the question is: what is the best option for drawing background for the game screen when you need it to be almost twice bigger than the screen’s size, make it looks same on all devices and move the screen around when the game is played?
you should use 9 patch image .
A NinePatchDrawable graphic is a stretchable bitmap image, which Android will automatically resize to accommodate the contents of the View in which you have placed it as the background.
see this link.
http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch