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)
Ответ 6
Правильная вещь - проверить версию SDK. В зависимости от этого вы можете использовать устаревшую функцию или использовать ее с помощью Point. См. Следующее: Безопасно ли использовать .getWidth на Диске, даже если его устарело.
Ответ 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;