¿Cómo puedo evitar métodos obsoletos y mantener la compatibilidad hacia atrás?

Posible duplicado:
Cómo tratar las clases obsoletas en Android para mantener la compatibilidad

Me encontré con el método de Display.getWidth() obsoleto y vi que se ha sustituido por android.view.getSize() . Sin embargo getSize() sólo ha estado disponible ya que la API 13 y View no se incluyen en la biblioteca de soporte de V4 Android.

Por lo tanto, si quiero evitar las llamadas obsoletas, ¿cómo puedo hacer esto sin mantener diferentes proyectos / builds para varios niveles de API.

Dado un objeto Display llamado display , esto debería funcionar:

 int width=-1; if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB_MR2) { Point size=new Point(); size=display.getSize(size); width=size.x; } else { width=display.getWidth(); } 

IOW, utilice Build.VERSION.SDK_INT para derivar entre los casos "antes" y "después" donde se introduce una nueva API.

Esto requerirá que el objetivo de creación (Proyecto> Propiedades> Android en Eclipse) se establezca en el Nivel 13+ de API, por lo que puede llamar a getSize() .

Hay una clase oficial de desarrolladores de Android Creación de interfaces de usuario compatibles con versiones anteriores :

Esta clase demuestra cómo utilizar componentes de interfaz de usuario y API disponibles en versiones más recientes de Android de una manera compatible con versiones anteriores, asegurándose de que su aplicación siga ejecutándose en versiones anteriores de la plataforma.

Abogan por el uso de interfaces Java para las bibliotecas que no son back-portadas para obtener una solución más orientada a objetos. A continuación, se extienden estos en dos clases concretas: una que proporciona un comportamiento alternativo para las plataformas no soportadas y una que llama a la API real de las plataformas soportadas.

Luego hay una clase de fábrica que instancia la clase correcta comprobando la plataforma actual en función del rango de plataforma soportado. En última instancia, sin embargo, se reduce a un condicional como if ( Build.VERSION.SDK_INT >= HONEYCOMB_MR2 ) .

  • Iconos de flecha de retroceso y desbordamiento de color incorrecto en dispositivos pre-Lollipop después de actualizar a la biblioteca de soporte 23.2.0
  • Implicado Z-Ordenando Para ViewPagers
  • ¿Cómo puedo habilitar javadoc para la biblioteca de soporte de Android?
  • Proyecto de Android se queja "Los tornillos de tipo.Task no se puede resolver. Se hace referencia indirectamente a los archivos .class necesarios "
  • Fragmentos anidados utilizando la biblioteca de soporte v4 revisión 11
  • Los fragmentos anidados desaparecen durante la animación de transición
  • ¿Cómo puedo crear preferencias personalizadas usando la biblioteca android.support.v7.preference?
  • despliegue la vista de desplazamiento anidada para ampliar la vista de la imagen en su parte superior
  • "SetSupportActionBar (barra de herramientas)" dentro de FragmentActivity?
  • Nullpointer al utilizar el adaptador personalizado en el menú de la lista de la barra de acciones (con el compat-v7)
  • NavigationView setNavigationItemSelectedListener esta API está marcada como interna a la biblioteca de soporte y no se debe tener acceso desde las aplicaciones
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.