【问题标题】:android, respond to layout resizeandroid,响应布局调整大小
【发布时间】:2012-11-20 20:14:59
【问题描述】:

我使用的 AdMob 视图在准备好显示之前没有宽度/高度,然后展开。有没有办法在发生这种情况时得到通知?发生这种情况时,我需要调整布局大小。

【问题讨论】:

标签: android layout admob


【解决方案1】:

您可以覆盖视图的onLayout 方法:

    View view = new View(this) {
        protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
            super.onLayout(changed, left, top, right, bottom);
            // Do some stuff
        }
    };

【讨论】:

    【解决方案2】:

    试试这个

    AdView.setAdListener(new AdListener() {
      public void onRecieveAd(){
          //resize your view
      }
    });
    

    如果您想知道您的 adview 何时收到广告,则可以使用 onFailedToRecieveAd 侦听器。

    AdView.setAdListener(new AdListener() {
      public void onFailedToRecieveAd(){
          //do something else
      }
    });
    

    【讨论】:

      【解决方案3】:

      如果您使用将 adMob 置于有效位置的相对布局,则效果最佳。您实际上可以放置 adMob 图像,使其成为布局的一部分。当图像进入时,布局会被适当地打乱。

      或者,您可以查看 adListeners

      public interface AdListener {
        public void onReceiveAd(Ad ad);
        public void onFailedToReceiveAd(Ad ad, AdRequest.ErrorCode error);
        public void onPresentScreen(Ad ad);
        public void onDismissScreen(Ad ad);
        public void onLeaveApplication(Ad ad);
      }
      

      本质上,您可以设置 addListener 并在收到广告时执行某些操作。但我建议使用包含在 XML 代码中的 adMob 的相对布局,这样布局会在图像出现/消失时自动调整。

      【讨论】:

        【解决方案4】:

        你可以使用类似的东西

        public void onCreate(Bundle savedInstanceState) 
        {
        ...
        make admob...
        ...
         AdSize adSize = AdSize.createAdSize(AdSize.SMART_BANNER, this);
         int h = adSize.getHeightInPixels(getBaseContext());
         myListView.setPadding(0, 0, 0, h);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-04-30
          • 1970-01-01
          • 1970-01-01
          • 2012-09-05
          • 2012-02-20
          • 2011-11-20
          • 2011-10-09
          • 1970-01-01
          相关资源
          最近更新 更多