Cómo encontrar el mejor PixelFormat para un Android SurfaceView

He encontrado que el cambio del formato del pixel en un SurfaceView tiene un impacto grande en tarifas del marco. Sin embargo no puedo encontrar una manera de seleccionar el mejor formato en una base por dispositivo.

Ejemplo:

@Override public void surfaceCreated(final SurfaceHolder holder) { //This line seems to fix speed issue with his res devices holder.setFormat(PixelFormat.RGBA_8888); androidGame.setSurfaceHolder(holder); } 

Esto hace que mi juego funcione mucho más rápido en un Galaxy Nexus (ICS 4.0) pero lento en un Motorola Xoom (3.2.1).

Si cambio a PixelFormat.OPAQUE la situación se invierte. El Nexus es lento y el Xoom ahora es rápido. Así que tengo que ser capaz de determinar el mejor formato por dispositivo. He intentado usar getWindow (). GetAttributes (). Formato, pero siempre devuelve -1 (OPAQUE).

Pude hablar con Romain Guy en Google IO 2012 durante las horas de oficina. Desafortunadamente no hay manera razonable de detectar el mejor formato del pixel a utilizar. Usted tendría que ejecutar una prueba de referencia en cada dispositivo para encontrar su mejor formato.

Display.getPixelFormat () obtendrá el formato de píxel para su pantalla. Yo recomendaría hacerlo de esa manera.

Este método ya no es compatible y siempre devolverá RGBA_8888.

 /** * Gets the pixel format of the display. * @return One of the constants defined in {@link android.graphics.PixelFormat}. * * @deprecated This method is no longer supported. * The result is always {@link PixelFormat#RGBA_8888}. */ @Deprecated public int getPixelFormat() { return PixelFormat.RGBA_8888; } 
  • Android: Recuperando el enfoque con SurfaceView
  • La superficie de Android se bloquea cuando se va al fondo
  • Desplazamiento de Android SurfaceView
  • Cómo dibujar una superposición en un SurfaceView utilizado por la cámara en Android?
  • El EditText de Android se oculta cuando se muestra el teclado virtual y está involucrado SurfaceView
  • Establecer el color de fondo de la vista de superficie
  • ¿Cómo puedo establecer el tamaño de vista previa de la cámara a la relación de aspecto cuadrado en un SurfaceView cuadrado (como Instagram)
  • (Android) ¿Cómo obtengo SmartPhone ScreenWidth y Height?
  • Android: ¿Cómo puedo configurar mi superficie personalizada con una relación de tamaño fijo en xml?
  • Android: ¿Es posible tener dos superficies superpuestas?
  • Juego de Android con superficial, lienzo - Dibujable o mapa de bits
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.