如何隐藏/禁用admob adview?

时间:2012-04-22 22:00:14

标签: android view admob adview

我通过view.gone隐藏了admob adview:

//adView.setClickable(false);
//adView.clearFocus();
//adView.setEnabled(false);
//adView.setFilterTouchesWhenObscured(true);
//adView.setFocusable(false);
//adView.setFocusableInTouchMode(false);
adView.setVisibility(View.GONE);
adView.startAnimation( animation );

这会隐藏广告,但广告本身仍然可以触摸,因此如果我触摸广告的空间,它仍然会打开浏览器并将我重定向到广告,尽管广告本身不可见。

如何禁用触控事件?我已经尝试了上面的所有行,但没有一个工作。

有什么建议吗?

3 个答案:

答案 0 :(得分:6)

设置adView.setVisibility(View.GONE)并从视图层次结构中移除AdMob视图会隐藏广告并阻止用户在大多数情况下进行互动。

当显示广告的活动完成(销毁)时,不要忘记结束AdView生命周期。来自AdMob SDK Javadoc:

  

public void destroy()

     

销毁AdView。调用此方法后,不应再使用AdView。

在活动的destroy()回调中致电onDestroy()

@Override
public void onDestroy() {
    if (adView != null) {
        adView.destroy();
    }
super.onDestroy();
}

答案 1 :(得分:5)

尝试使用setOnTouchListener和Override onTouch。您也可以使用removeView():

LinearLayout linLay = (LinearLayout)findViewById(R.id.ad_layout);
linLay.removeView(adView); 
LinearLayout.LayoutParams params = new  LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
linLay.addView(adView, params);

并在需要时将其添加回来。

答案 2 :(得分:0)

final com.google.ads.AdView ad = (AdView) findViewById(R.id.rect_ad);
   if ( ad != null) {
            ad.stopLoading();
            ad.destroy();
            getWindowManager().removeView(ad);
   }

即使这段代码也不会破坏AdMob =((( 我在内存中使用Handler和WebView来保存我的活动