gpt4 book ai didi

java - Admob NativeExpressAdView 仅 java

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:50 24 4
gpt4 key购买 nike

在不使用布局文件 (xml) 的情况下从 admob 使用 NativeExpressAdView 的任何方法。

我仅使用 java 文件来创建 View ,并且想知道如何从 java 文件为 NativeExpressAdView 创建 View ?

编辑:

我试过了

NativeExpressAdView adView = new NativeExpressAdView(activity);
AdSize adSize = new AdSize(280, 80);
adView.setAdSize(adSize);
adView.setAdUnitId(getString(R.string.ad_unit_id));
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, adSize.getHeightInPixels(activity));
adView.setLayoutParams(layoutParams);
AdRequest request = new AdRequest.Builder().build();
adView.loadAd(request);

linear_layout.addView(adView);

这段代码给了我一个黑色的空 View 宽度:280dp,高度:80dp

最佳答案

这样的东西应该可以工作......首先通过创建文件 /res/values/ids.xml 为 View “保留”一个 id:

 <?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="nativeExpressAdId" type="id"/>
</resources>

在 Android > 17 的 API 版本上,您可以 generate the ID on the fly ,但随后您会失去向后兼容性。

接下来向“/res/values/strings.xml”添加一个条目:

     <string name="adUnitId">ca-app-pub-12345678901234567890etc</string>

然后在代码中:

 NativeExpressAdView adView = new NativeExpressAdView(this);
adView.setId(R.id.nativeExpressAdId);
int height = 80; // or whatever is appropriate - make sure its >= ad minimum
// set the size to the width of the screen
adView.setAdSize(new AdSize((int) (AdSize.FULL_WIDTH, height));
adView.setAdUnitId(getString(R.string.adUnitId));
// assuming this goes in a linearlayout... you can also addRules to lp
LinearLayout.LayoutParams lp = new
LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
// set margins manually (`.setMargins()`) or add rules with (`.addRule()`)
// or .setVisibility() etc... to lp
adView.setLayoutParams(lp);

然后使用parent.addView(adView)将其插入到父容器中。这并不完全是我使用的代码(我使用的是relativelayout),但它非常接近,所以应该可以帮助您开始。

如果您需要在轮播时生成新广告,则此类代码非常有用,因为您无法调整现有广告的大小。您可以从前一个中“借用”前一个 ID、可见性、布局等,并将其应用到新的中。请参阅 here 了解类似示例。

提示:在删除 nativeexpressadview 之前,请确保停止所有正在运行的动画,因为这可能会导致旧版 Web View (如 Kitkat 中的 Web View )崩溃。

关于java - Admob NativeExpressAdView 仅 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40186161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com