Tom*_*rin 6 android overlay surfaceview relativelayout admob
我正在尝试在游戏顶部添加横幅广告.我的活动使用RelativeLayout和自定义SurfaceView.我希望广告与SurfaceView重叠.
广告加载并且可以点击,但不会被绘制到屏幕上.当我离开活动和回报,广告绘制(例如,通过按下home键,然后通过近期]菜单返回到应用程序).
这不是等待广告加载的问题,因为1)如果我等待,则广告不会显示; 2)即使广告不可见,广告也是可点击的.
这是我的布局代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/layout_mainmenu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.xxx.menu.SurfaceViewMainMenu
android:id="@+id/view_mainmenu"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.google.android.gms.ads.AdView
android:id="@+id/ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignTop="@id/view_mainmenu"
android:layout_alignLeft="@id/view_mainmenu"
ads:adSize="BANNER"
ads:adUnitId="@string/ad_unit_id_banner"/>
Run Code Online (Sandbox Code Playgroud)
加载广告的代码张贴一个Runnable由RenderThread UI线程当RenderThread是第一次运行.
有没有人有任何想法我可以立即制作广告?或者为什么只有在我返回活动时才会制作广告?
我试过在RelativeLayout上调用forceLayout()/ requestLayout()但这没有帮助.我也尝试在视图上调用invalidate().
谢谢,汤姆.
编辑
我在AdView中添加了一个AdListener,可以确认是否正在调用onAdLoaded.广告已加载但不可见.
有效:我在onAdLoaded回调中制作了另一个adLoad请求,然后广告出现了.
因此广告只会在我提出的第二个请求后显示.谁知道这里发生了什么?
小智 10
我有同样的问题,我所要做的就是在加载时将adView带到前面.(我推荐这个加载两次)
mAdView.setAdListener(new AdListener()
{
public void onAdLoaded()
{
Log.i("Ads", "onAdLoaded");
mAdView.bringToFront();
}
}
Run Code Online (Sandbox Code Playgroud)
你已经告诉你的 SurfaceView 匹配它的高度,所以我对你的 AdView 没有空间并不感到惊讶。
建议您使用LinearLayout而不是RelativeLayout并让SurfaceView使用
layout_height="wrap_content"
layout_width="match_parent"
layout_weight="1"
Run Code Online (Sandbox Code Playgroud)
以便显示 AdView,但 SurfaceView 会扩展以填充剩余空间。
| 归档时间: |
|
| 查看次数: |
4384 次 |
| 最近记录: |