1

我想在我的应用中使用新推出的Google AdMob 自适应横幅。该快速入门说明了一个通过 DisplayMetrics 动态计算 AdSize 的函数。

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);
}

但是这个函数使用了Activity的getWindowManager()进行计算。但我只是将上下文传递给我的班级。无论如何要获得带有上下文的 DisplayMetrics?

4

2 回答 2

3

轻松完成。

这一点

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

可以用这个代替:

DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
于 2019-11-21T10:02:50.540 回答
0

如果你使用 Cordova 可以使用这个:

this.cordova.getActivity().getWindowManager().getDefaultDisplay();
于 2020-06-29T21:24:36.047 回答