Подтвердить что ты не робот

Безопасно ли использовать .getWidth на дисплее, хотя его устаревший

Итак, у меня небольшая проблема, я пишу функцию, которая должна отправлять ширину экрана на сервер. Я получил все, чтобы работать, и я использую:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();

чтобы получить ширину. Однако функция .getWidht() устарела, и она говорит, что вам нужно использовать:

Point size = new Point();
display.getSize(size);

Но эта функция доступна только для уровня api 13 или более, а мой минимальный sdk равен 8. Так что я могу сделать? Безопасно ли я оставаться с getWidth? Зачем добавлять новую функцию, а не сделать ее обратной совместимостью?

4b9b3361

Ответ 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);

            }