java - 出现时android获取adMob横幅高度

标签 java android eclipse admob

我正在向我的应用程序成功添加 adMob 横幅。当横幅出现时,我需要获取它的高度以调整所有布局元素的大小。我正在使用正确触发的 onReceivedAd 事件。但是,alturaBanner = 0。那么,如何获取它的高度呢?谢谢。

   /** Called when an ad is received. */
    @Override
    public void onReceiveAd(Ad ad) 
    {
        adView.setVisibility(View.VISIBLE);

        int alturaBanner = adView.getHeight();

        RelativeLayout.LayoutParams params1 = (android.widget.RelativeLayout.LayoutParams) browse2
        .getLayoutParams();

        params1.setMargins(0, alturaBanner, 0, 0);

      Log.d(LOG_TAG, "onReceiveAd");
      Toast.makeText(this, "onReceiveAd", Toast.LENGTH_SHORT).show();
    }

最佳答案

您甚至可以在将任何类型的横幅添加到布局之前获取它的高度。

int heightPixels = AdSize.SMART_BANNER.getHeightInPixels(this);

int heightPixels = AdSize.FULL_BANNER.getHeightInPixels(myContext);

或 DIP 的

int heightDP = AdSize.BANNER.getHeight();

因此,根据您的需要,您可以这样做:

/** Called when an ad is received. */
@Override
public void onReceiveAd(Ad ad) 
{
    adView.setVisibility(View.VISIBLE);

    int alturaBanner = AdSize.BANNER.getHeight(); // This gets the adsize, even if the view is not inflated. 

    RelativeLayout.LayoutParams params1 = (android.widget.RelativeLayout.LayoutParams) browse2
    .getLayoutParams();

    params1.setMargins(0, alturaBanner, 0, 0);

  Log.d(LOG_TAG, "onReceiveAd");
  Toast.makeText(this, "onReceiveAd", Toast.LENGTH_SHORT).show();
}

只需将 AdSize.BANNER 更改为 AdSize.SMART_BANNER 或您使用的任何横幅类型。

Add Sizes Get Height

关于java - 出现时android获取adMob横幅高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10433140/

相关文章:

java - 如何使用 Git 使 Beyond Compare 在 Eclipse 中工作?

java - 在使用 SLF4J 进行日志记录之前, "trimming"异常堆栈跟踪的最佳实践是什么?

android - Android 上的 Web View 是否支持 SSL?

java - 如何在 Vuforia(没有 Unity)中点击模型的一部分?

android - Firebase session 失效

java - android 中的 split 效果不好

java - 缺少源文件的 Eclipse Java 调试

java - 是否有任何开源和免费的日历 UI 可重用组件?

java - 在 LDAP 查询中是否可以加入?

java - Neo4j java api : Transactions, 多处理和线程安全