Адаптивные баннеры AdMob. Получить DisplayMetrics из контекста

Я хочу использовать недавно представленные адаптивные баннеры Google AdMob в своем приложении. В кратком руководстве показана функция для динамического расчета AdSize с помощью DisplayMetrics.

private AdSize getAdSize() {
    // Step 2 - Determine the screen width (less decorations) to use for the ad width.
    Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics outMetrics = new DisplayMetrics();
    display.getMetrics(outMetrics);

    float widthPixels = outMetrics.widthPixels;
    float density = outMetrics.density;

    int adWidth = (int) (widthPixels / density);

    // Step 3 - Get adaptive ad size and return for setting on the ad view.
    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}

Но эта функция использует для расчета getWindowManager() Activity. Но я просто передаю контекст своему классу. В любом случае, чтобы получить DisplayMetrics с контекстом?

2 ответа

Легко выполняется.

Этот бит

Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);

можно заменить на это:

DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();

Если вы используете Кордову, можете использовать это:

this.cordova.getActivity().getWindowManager().getDefaultDisplay();
Другие вопросы по тегам