Android: что мне делать вместо использования устаревшей функции (getwidth())?

Я хочу использовать функцию activity.getWindowManager(). getDefaultDisplay(). getwidth(), но есть предупреждение, в котором говорится, что эта функция устарела

Что мне делать? Должен ли я использовать эту функцию в любом случае? или есть другие функции, которые делают то же самое?

Ответ 1

Устаревшее означает, что его нельзя использовать, но он по-прежнему существует по причинам, связанным с способностью.

Вместо этого вы должны использовать:

Point size = new Point();
activity.getWindowManager().getDefaultDisplay().getSize(size);
int width = size.x;
int height = size.y;

Ответ 2

Программный элемент, аннотированный @Deprecated, является тем, что программисты не рекомендуется использовать, как правило, потому, что это опасно, или потому, что существует лучшая альтернатива. Компиляторы предупреждают, когда устаревшая программа элемент используется или переопределяется в не устаревшем коде.

Смотрите this и this и this и this и this и т.д.............

Ответ 3

В Display ссылка на API:

int getWidth()
This method was deprecated in API level 13. Use getSize(Point) instead.

Это означает, что вы создадите экземпляр Point, передайте его на getSize() и извлеките из него x.

Ответ 4

Устаревшие функции - это функция, из которой были введены новые лучшие альтернативы, и в будущем они могут не поддерживаться в новых API. Но не стесняйтесь использовать их, так как требуется много времени для их истекли.

Ответ 5

Наведите курсор на имя метода и нажмите F2, чтобы получить информацию о новейшем API. (если вы используете Eclipse)

Ответ 7

Try:

WindowManager windowmanager = (WindowManager) this.getContext()
                              .getSystemService(Context.WINDOW_SERVICE);

с:

Display display = windowmanager.getDefaultDisplay();

Point size = new Point();
try {
    display.getRealSize(size);
} catch (NoSuchMethodError err) {
    display.getSize(size);
}
int width = size.x;
int height = size.y;

или с помощью:

DisplayMetrics displayMetrics = new DisplayMetrics();
windowmanager.getDefaultDisplay().getMetrics(displayMetrics);
int deviceWidth = displayMetrics.widthPixels;
int deviceHeight = displayMetrics.heightPixels;