Адаптивные баннеры 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();