viejos - wrap_content android
¿Es seguro usar.getWidth en la pantalla aunque esté obsoleto? (3)
Puede ser que este enfoque sea útil:
DisplayMetrics displaymetrics = new DisplayMetrics();
mContext.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenWidth = displaymetrics.widthPixels;
int screenHeight = displaymetrics.heightPixels;
Así que tengo un pequeño problema, estoy escribiendo una función que necesita enviar ancho de pantalla al servidor. Lo tengo todo para trabajar, y uso:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
para obtener ancho Sin embargo, la función .getWidht () está en desuso y dice que necesitas usar:
Point size = new Point();
display.getSize(size);
Pero esa función solo está disponible para el nivel api 13 o más, y mi sdk mínimo es 8. Entonces, ¿qué puedo hacer? ¿Es seguro si me quedo con getWidth? ¿Por qué agregar nuevas funciones y no hacerlas compatibles con versiones anteriores?
Puede verificar el nivel de API en tiempo de ejecución y elegir cuál usar, por ejemplo:
final int version = android.os.Build.VERSION.SDK_INT;
final int width;
if (version >= 13)
{
Point size = new Point();
display.getSize(size);
width = size.x;
}
else
{
Display display = getWindowManager().getDefaultDisplay();
width = display.getWidth();
}
Si quieres ser correcto, usa este enfoque>
int sdk = android.os.Build.VERSION.SDK_INT;
if (sdk < android.os.Build.VERSION.RELEASE) {
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
} else {
Point size = new Point();
display.getSize(size);
}