android admob size on dimensions error: A 'type' attribute is required for <item>
android admob size on dimensions error: A 'type' attribute is required for <item>
我有一个布局和属性:
ads:adSize="LARGE_BANNER"
我想把它和
ads:adSize="@dim...暗淡的名字"
但它给我错误
例如:FULL_BANNER
它说像完整横幅之类的东西不存在并且无法编译。
我现在在样式上尝试了它,但它也不起作用:
<item name="ads:adSize">LEADERBOARD</item>
它说错误:
需要 'type' 属性
有什么想法吗?
您可以通过编程方式根据屏幕分辨率动态加载广告尺寸。
在你的 activity 的 class onCreate():
AdSize adSize = AdSize.SMART_BANNER;
DisplayMetrics dm = getResources().getDisplayMetrics();
double density = dm.density * 160;
double x = Math.pow(dm.widthPixels / density, 2);
double y = Math.pow(dm.heightPixels / density, 2);
double screenInches = Math.sqrt(x + y);
if (screenInches > 8) { // > 728 X 90
adSize = AdSize.IAB_LEADERBOARD;
} else if (screenInches > 6) { // > 468 X 60
adSize = AdSize.IAB_BANNER;
} else { // > 320 X 50
adSize = AdSize.BANNER;
}
LinearLayout adContainer = (LinearLayout) findViewById(R.id.your_parent_layout);
adView = new AdView(this, adsize, "xxxxxxxxxx");
AdRequest adRequest = new AdRequest();
adView.loadAd(adRequest);
// Place the ad view.
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
adContainer.addView(adView, params);
如果您更喜欢以 xml 格式定义 adview 并引用 values-sw600, values-sw720
.. 文件夹中的值,您可以在 dimens.xml
:[=15= 中定义宽度和高度]
在values/dimens.xml
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="admob_width">320dp</dimen>
<dimen name="admob_height">50dp</dimen>
</resources>
然后,在你的布局中:
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="@dimen/admob_width"
android:layout_height="@dimen/admob_height"
ads:adUnitId="your_unit_id"
ads:adSize="SMART_BANNER"
ads:loadAdOnCreate="true"/>
我有一个布局和属性:
ads:adSize="LARGE_BANNER"
我想把它和 ads:adSize="@dim...暗淡的名字"
但它给我错误 例如:FULL_BANNER 它说像完整横幅之类的东西不存在并且无法编译。
我现在在样式上尝试了它,但它也不起作用:
<item name="ads:adSize">LEADERBOARD</item>
它说错误:
需要 'type' 属性有什么想法吗?
您可以通过编程方式根据屏幕分辨率动态加载广告尺寸。
在你的 activity 的 class onCreate():
AdSize adSize = AdSize.SMART_BANNER;
DisplayMetrics dm = getResources().getDisplayMetrics();
double density = dm.density * 160;
double x = Math.pow(dm.widthPixels / density, 2);
double y = Math.pow(dm.heightPixels / density, 2);
double screenInches = Math.sqrt(x + y);
if (screenInches > 8) { // > 728 X 90
adSize = AdSize.IAB_LEADERBOARD;
} else if (screenInches > 6) { // > 468 X 60
adSize = AdSize.IAB_BANNER;
} else { // > 320 X 50
adSize = AdSize.BANNER;
}
LinearLayout adContainer = (LinearLayout) findViewById(R.id.your_parent_layout);
adView = new AdView(this, adsize, "xxxxxxxxxx");
AdRequest adRequest = new AdRequest();
adView.loadAd(adRequest);
// Place the ad view.
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
adContainer.addView(adView, params);
如果您更喜欢以 xml 格式定义 adview 并引用 values-sw600, values-sw720
.. 文件夹中的值,您可以在 dimens.xml
:[=15= 中定义宽度和高度]
在values/dimens.xml
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="admob_width">320dp</dimen>
<dimen name="admob_height">50dp</dimen>
</resources>
然后,在你的布局中:
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="@dimen/admob_width"
android:layout_height="@dimen/admob_height"
ads:adUnitId="your_unit_id"
ads:adSize="SMART_BANNER"
ads:loadAdOnCreate="true"/>