2011-02-27 5 views
0

나는 안드로이드 SDK 샘플 달 착륙선 템플릿을 사용하는 게임을 썼지 만 템플릿에서 버그를 발견했습니다. 많은 시도를 통해 나는 그것을 고칠 수 없다. 그래서 게임 템플릿을 Chris pruett의 SpriteMethodTest http://code.google.com/p/apps-for-android/source/browse/trunk/SpriteMethodTest으로 바꿉니다.이 템플릿에는 몇 가지 문제가 있습니다.Android 캔버스 게임 문제

문제 : CanvasTestActivity.java에서 onCreate()에서있어서 코드 사용 서피스 뷰 SurfaceView 초기화 :

mCanvasSurfaceView = 새로운 CanvasSurfaceView (이); ... setContentView (mCanvasSurfaceView);

나는 나의 서피스 뷰 SurfaceView를 취할 레이아웃 파일을 사용하려면, 그래서 나는이 같은 레이아웃 파일 생성 :

main.xml에

<?xml version="1.0" encoding="utf-8"?> 

<me.codeand.xxx.CanvasSurfaceView 
    android:id="@+id/gameview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"/> 

I을 oncreate() 메소드의 코드가 변경되었습니다.

mCanvasSurfaceView = (CanvasSurfaceView) findViewById (R.id.gameview); setContentView (R.layout.main);

findViewById 항상 null을 반환합니다! 나는 이유를 모른다! 정말 도움이 필요해!

현재 광고를 사용하여 Android 앱에 admob 광고를 추가하는 방법 : mCanvasSurfaceView = new CanvasSurfaceView (this); setContentView (mCanvasSurfaceView);

나는 웹 :(

최고 감사합니다, czYang의 모든 샘플을 찾을 수 없습니다

+0

囧 !! 그냥 setContentView (R.layout.main)의 순서를 변경하십시오; mCanvasSurfaceView = (CanvasSurfaceView) findViewById (R.id.gameview); 문제는 마치 풀린 것처럼 보입니다! – ycz

답변

1

당신이 AdMob 광고의를 추가하려면 setContentView(R.layout.main)

? findViewById 전에 전화하는거야 확신 가장 쉬운 방법은 RelativeLayout을 만들고 addContentView으로 창에 추가 한 다음 Gravity.BOTTOM 레이아웃 매개 변수를 사용하여 admob의 AdView를 상대 레이아웃의 맨 아래에 추가하는 것입니다.

+0

대단히 감사합니다! 문제 해결 :) Admob 광고를 추가하려면 뷰를 배치하기 위해 레이아웃을 사용하지 않으면 프로그래밍 방식으로 AdView를 만듭니다. 이에 대해서는 전혀 알지 못합니다. – ycz