4

私はここのチュートリアルに従おうとしています:

http://www.edu4java.com/en/androidgame/androidgame2.html

しかし、障害にぶつかった。何らかの理由で、EclipseはgetHolder()を認識せず、次のエラーが発生します。

getHolder()メソッドは、GameViewタイプに対して未定義です。

そして、次の解決策:

getHandler(...);に変更します。getHolder()メソッドを作成します

コードはチュートリアルとほとんど同じですが、とにかく私が持っているものは次のとおりです。

package com.example.killthemall;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
import android.view.View;

public class GameView extends View {

private Bitmap bmp;
private SurfaceHolder holder;

public GameView(Context context) {
    super(context);
    holder = getHolder();
    holder.addCallback(new Callback() {

        public void surfaceDestroyed(SurfaceHolder holder) {

        }

        public void surfaceCreated(SurfaceHolder holder) {
               Canvas c = holder.lockCanvas(null);
               onDraw(c);
               holder.unlockCanvasAndPost(c);
        }

        public void surfaceChanged(SurfaceHolder holder, int format,
                      int width, int height) {

        }

 }); 


    bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
}

@Override
protected void onDraw(Canvas canvas) {
    canvas.drawColor(Color.BLACK);
    canvas.drawBitmap(bmp, 10, 10, null);
}

}
4

1 に答える 1

5

getHolder()は のメソッドでありSurfaceView、 を拡張していますView。への変更:

public class GameView extends SurfaceView {
于 2012-10-11T01:54:35.587 に答える