我正在将AdMob集成到我的应用中,我想知道如何正确禁用广告.我想让用户能够禁用它们.我不希望AdMob因为错误的展示而遇到任何问题.这种方式是正确的还是我应该考虑一下?
AdView ads = (AdView) findViewById(R.id.ad);
ads.setEnabled(false);
Run Code Online (Sandbox Code Playgroud)
Qua*_*one 35
在您的布局文件中(例如,main.xml):
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/adsContainer">
<com.admob.android.ads.AdView
android:id="@+id/admobAds"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
app:backgroundColor="#000000"
app:primaryTextColor="#FFFFFF"
app:secondaryTextColor="#CCCCCC">
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
然后在你的代码中(例如,在"if"块内)
(LinearLayout) adscontainer = (LinearLayout) findViewById(R.id.adsContainer);
View admobAds = (View) findViewById(R.id.admobAds);
adscontainer.removeView(admobAds);
Run Code Online (Sandbox Code Playgroud)
这将"永久"(对于应用程序的生命周期)从layou中删除广告,这意味着不会有任何广告请求.
小智 27
我还想让用户能够禁用广告 - 为什么强迫人们在不想要的时候看到它们?你为什么要指望人们为这个选择买单呢?
无论如何,我在本文中概述了我是如何做到这一点的.这篇文章更详细,但这里有相关部分:
我用来关闭广告的代码:
private void hideAd() {
final AdView adLayout = (AdView) findViewById(R.id.adView1);
runOnUiThread(new Runnable() {
@Override
public void run() {
adLayout.setEnabled(false);
adLayout.setVisibility(View.GONE);
}
});
}
Run Code Online (Sandbox Code Playgroud)
并重新打开它们(如果有人感到慷慨)
private void showAd() {
final AdView adLayout = (AdView) findViewById(R.id.adView1);
runOnUiThread(new Runnable() {
@Override
public void run() {
adLayout.setEnabled(true);
adLayout.setVisibility(View.VISIBLE);
adLayout.loadAd(new AdRequest());
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36472 次 |
| 最近记录: |