Google Ads MediaView在显示图片时未正确调整高度以适应wrap_content
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google Ads MediaView在显示图片时未正确调整高度以适应wrap_content相关的知识,希望对你有一定的参考价值。
我今天收到了来自AdMob的电子邮件说:
更改为原生广告策略:原生广告需要MediaView才能呈现视频或主要图片资源。为了帮助您更轻松地提供更好的广告体验,从10月29日开始,原生广告将要求MediaView呈现视频或主要图片资源。不符合此日期的广告单元将停止投放广告,这可能会影响您的广告收入。
我在我的android应用程序中尝试了这个,删除了使用ImageView
和MediaView
视频单独处理图像,但我发现MediaView没有根据显示的图像高度调整视图的高度。
在Google的this codelab示例中,使用了MediaView
的固定高度和宽度。我不能这样做,因为这个屏幕响应屏幕大小,这将根据设备而改变。可以动态调整图像大小的事实是使用UnifiedNativeAds
而不是横幅等预定义广告的主要好处之一。
这就是我需要显示MediaView
的方法,使用match_parent
作为宽度,使用wrap_content
作为高度。
<com.google.android.gms.ads.formats.MediaView
android:id="@+id/ad_media"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:adjustViewBounds="true"
android:scaleType="fitXY"/>
This is what I am currently getting from the above code
This is what I need and expect it to look like from using wrap_content
在之前我们能够使用ImageView分别渲染图像的情况下,wrap_content
值正确地调整了图像的大小。
有人有解决方法吗?如何在不对MediaView
的高度进行硬编码的情况下遵循新的Google要求?
我的完整代码可以在我的github上的演示应用程序中找到here。
mediaView.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
@Override
public void onChildViewAdded(View parent, View child) {
if (child instanceof ImageView) {
ImageView imageView = (ImageView) child;
imageView.setAdjustViewBounds(true);
}
}
@Override
public void onChildViewRemoved(View parent, View child) {}
});
以上是关于Google Ads MediaView在显示图片时未正确调整高度以适应wrap_content的主要内容,如果未能解决你的问题,请参考以下文章
膨胀类 com.facebook.ads.MediaView 时出错
Flutter google_mobile_ads 未显示广告 ID