I have the following class in android, where I define some functions for calculating the movement of bubbles on the screen.
public class floatBubble { private Bitmap img; // the image of the ball private int coordX = 512; // the x coordinate at the canvas private int coordY = 600; // the y coordinate at the canvas private int id; // gives every ball his own id, for now not necessary private static int count = 1; private boolean goRight = true; private boolean goDown = true; public floatBubble(Context context, int drawable) { BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inJustDecodeBounds = true; img = BitmapFactory.decodeResource(context.getResources(), drawable); id=count; count++; } public static int getCount() { return count; } void setX(int newValue) { coordX = newValue; } public int getX() { return coordX; } void setY(int newValue) { coordY = newValue; } public int getY() { return coordY; } public int getID() { return id; } public Bitmap getBitmap() { return img; } public void moveBall(int goX, int goY) { // check the borders, and set the direction if a border has reached if (coordX > 1024){ goRight = false; } if (coordX < -100){ goRight = false; coordX = 512; coordY = 600; } if (coordY > 600){ goDown = false; } if (coordY < -100){ coordY = 600; goDown = false; } // move the x and y if (goRight){ coordX += goX; }else { coordX -= goX; } if (goDown){ coordY += goY; }else { coordY -= goY; } } }
This screen resolution is 1024 * 600 pixels. BUt I want to calculate the screens at runtime. means the need to determine coordination and coordination at runtime. Can you help me in changing the code.
I tried using the following code in my moveBall (), but the code did not work there.
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); coordX = dm.widthPixels; coordY = dm.heightPixels;
Can anyone suggest a solution?
source share