android,响应布局调整大小

时间:2012-11-20 20:15:00

标签: android layout admob

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

4 个答案:

答案 0 :(得分:2)

您可以覆盖视图的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
        }
    };

答案 1 :(得分:1)

尝试使用此

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

如果您想知道广告视频何时收到广告,那么您可以使用onFailedToRecieveAd监听器。

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

答案 2 :(得分:1)

如果您使用将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的相对布局,以便布局在图像显示/消失时自动调整。

答案 3 :(得分:0)

你可以使用像

这样的东西
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);
}