我有以下MainActivity
xml文件AdView中不顯示(可能隱藏在其它視圖背後)
<FrameLayout 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/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.retrochicken.slide.MainActivity">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="bottom|start"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>
</FrameLayout>
然後在MainActivity
java類OnCreate
方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
FrameLayout mainLayout = (FrameLayout) findViewById(R.id.mainLayout);
mainLayout.addView(new GamePanel(this));
MobileAds.initialize(getApplicationContext(), "ca-app-pub-3940256099942544~3347511713");
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
mAdView.bringToFront();
}
我想有我GamePanel
類,它是一個SurfaceView
,在整個屏幕上繪製一個畫布,但在其頂部的屏幕底部顯示一個廣告條。目前我看不到任何廣告,這可能是一些其他問題,但我猜測它顯示在GamePanel
正在繪製的背後。
編輯
我已經證實,它是GamePanel
上AdView的頂部繪製的問題,我認爲這可能是我是怎麼處理的繪畫方法。在GamePanel
我有一個方法draw(Canvas canvas)
繪製所有的遊戲對象在畫布上,我然後發佈使用
try {
canvas = this.surfaceHolder.lockCanvas();
synchronized (surfaceHolder) {
this.gamePanel.update(timeMillis);
this.gamePanel.draw(canvas);
}
} catch(Exception e) {
} finally {
if(canvas != null) {
try {
surfaceHolder.unlockCanvasAndPost(canvas);
} catch(Exception e) {e.printStackTrace();}
}
}
,其被包含在while循環重複(在另一個線程)
畫布到屏幕,其控制遊戲幀。
它沒有看起來工作,但我現在認爲這是一個問題,我如何繪製我的畫布,而不是分層。 –
@ wfish454教程用新的嘗試更新了答案 – jeyoor