wrap_content viejos studio soporte obsoleto match_parent lollipop layout_weight kit kat jelly ics dispositivos celular bean actualizar android width deprecated

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); }