Tengo la siguiente clase en Android, donde estoy definiendo algunas funciones para calcular el movimiento de burbujas en la pantalla.¿Cómo puedo calcular la altura y el ancho de la pantalla en tiempo de ejecución?
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;
}
}
}
Esto para la resolución de pantalla 1024 * 600px. BUt Deseo calcular el tamaño de pantalla en tiempo de ejecución. significa que necesita definir coordX y coordination en el tiempo de ejecución. ¿Me pueden ayudar a modificar el código?
Intenté usar el siguiente código en mi moveBall(), pero el código no funcionó allí.
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
coordX = dm.widthPixels;
coordY = dm.heightPixels;
Cualquiera puede sugerir una solución?