Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我还能在XML中使用smart_横幅吗?_Java_Android_Admob - Fatal编程技术网

Java 我还能在XML中使用smart_横幅吗?

Java 我还能在XML中使用smart_横幅吗?,java,android,admob,Java,Android,Admob,admob smart_横幅在java代码中不推荐使用。但它在XML中并没有被标记为不推荐使用 我的xml: <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto" android:id="@+id/adView" android:layout_width="match_parent"

admob smart_横幅在java代码中不推荐使用。但它在XML中并没有被标记为不推荐使用

我的xml:

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ads:adSize="SMART_BANNER"
    ads:adUnitId="ca-app-pub-xxx">
</com.google.android.gms.ads.AdView>
我的问题是,smart_banner会起作用吗?我必须更改我的广告代码吗?我做错什么了吗? 谢谢朋友。

你没有做错任何事,智能横幅广告是有效的广告大小,但网站说你应该使用相应的改变横幅大小的广告,并且更受欢迎

自适应横幅是下一代响应性广告,最大限度地 通过优化每个设备的广告大小来提高性能。智能手机的改进 仅支持固定高度的横幅,自适应横幅允许 开发人员指定广告宽度,并使用该宽度确定最佳广告宽度 广告大小

您的java代码显示了AdSize.SMART\u横幅已弃用,因为

public static AdSize getCurrentOrientationAnchoredAdaptiveBannerAdSize(上下文,int-width)
它不是
AdSize.SMART_BANNER
,而是返回一个具有给定宽度和谷歌优化高度的AdSize来创建一个横幅广告。这在xml中不会发生,因为没有其他方法,您也应该使用类似方式工作的自适应横幅

如果您想要使用它,您可以使用这种设置adSize的方法

AdSize adSize = getAdSize();
adView.setAdSize(adSize);
并将adSize()作为


谢谢你的回答。问题是当我在JAVA中设置时:
adView.setAdSize(AdSize.SMART_BANNER)它说它已被弃用。但是在XML中它什么也没说。你必须在参数中给出设备宽度。顺便说一句,即使你使用
AdSize.SMART_BANNER
,你的代码仍然可以工作,但是使用不推荐的函数和类是一种不好的做法,因为它们不再受支持
AdSize adSize = getAdSize();
adView.setAdSize(adSize);
private AdSize getAdSize() { 
 Display display = getWindowManager().getDefaultDisplay();
 DisplayMetrics outMetrics = new DisplayMetrics(); 
display.getMetrics(outMetrics);
 float widthPixels = outMetrics.widthPixels; 
float density = outMetrics.density; int adWidth = (int) (widthPixels / density);

 return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth); }