Android: cómo averiguar la relación de aspecto exacta de píxeles de los dispositivos mediante programación?

Quiero mostrar los azulejos que se supone que son todos los cuadrados en mi aplicación de Android, con OpenGL ES 2.0.

¿Es posible que una aplicación instalada en un dispositivo Android descubra la relación de aspecto exacta de los píxeles individuales de la pantalla del dispositivo mediante programación sin ninguna entrada del usuario?

Creo que lo que buscas es la clase DisplayMetrics . Tiene campos heightPixels y widthPixels que dan dimensiones de pantalla, así como otra información útil como densidad de píxeles.

Como se menciona en la documentación, puede obtener DisplayMetrics para su dispositivo utilizando getWindowManager().getDefaultDisplay().getMetrics(metrics);

No recomendaría usar los valores xdpi y ydpi que obtiene de Display.getMetrics. Estos valores son conocidos por ser incorrectos para algunos dispositivos (por ejemplo, en un Huawei Ascend P1 obtengo valores xdpi y ydpi de 152.4 y 451.6, que definitivamente están lejos, los píxeles son mucho más cuadrados que eso). Si intenta dibujar un cuadrado perfecto basado en estos valores incorrectos, puede terminar con un rectángulo muy estirado en algunos dispositivos. En este momento el mejor consejo que tengo es asumir que los píxeles son cuadrados, lo que entiendo no es la situación ideal. Consulte https://groups.google.com/forum/#!topic/android-developers/g56jV0Hora0 . El código de la plataforma Android no utiliza estos valores. En lugar de densidad y densityDPI se utilizan para ambas coordenadas xey. Incluso podría tratar de comparar sus valores xdpi y ydpi y si difieren significativamente, a continuación, predeterminado a píxeles cuadrados, aunque creo que también sería una solución desordenada.

  • Imágenes en vivo de Android - OpenGL vs Canvas
  • Opengl ES 1.1 / Android - La debacle de la textura-mapeo-a-uno-cuadrado de 2011
  • Recursos para aprender desarrollando juegos con ndk + opengl en C ++?
  • ¿Cómo usar un vector de rotación y traducción OpenCV con OpenGL ES en Android?
  • SoftKeyboard para Android
  • Android OpenGL ES: Coordinación de MotionEvent normalizada
  • Android OpenGL textura de origen no local utilizando Rajawali3D?
  • Android GLSurfaceView
  • Pasar atributos personalizados a un shader de fragmentos personalizado
  • Patrones para el desarrollo de juegos Android?
  • Android - las últimas bibliotecas de código abierto en 3d para android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.