Безопасно ли использовать .getWidth на дисплее, хотя его устаревший
Итак, у меня небольшая проблема, я пишу функцию, которая должна отправлять ширину экрана на сервер. Я получил все, чтобы работать, и я использую:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
чтобы получить ширину. Однако функция .getWidht() устарела, и она говорит, что вам нужно использовать:
Point size = new Point();
display.getSize(size);
Но эта функция доступна только для уровня api 13 или более, а мой минимальный sdk равен 8. Так что я могу сделать? Безопасно ли я оставаться с getWidth? Зачем добавлять новую функцию, а не сделать ее обратной совместимостью?
Ответы
Ответ 1
Возможно, этот подход будет полезен:
DisplayMetrics displaymetrics = new DisplayMetrics();
mContext.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenWidth = displaymetrics.widthPixels;
int screenHeight = displaymetrics.heightPixels;
Ответ 2
Вы можете проверить уровень API во время выполнения и выбрать, какой из них использовать, например:
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();
}
Ответ 3
Если вы хотите быть верным, используйте этот подход >
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);
}