我删除了代理类
SurfaceRenderer,并将其全部移至我的活动中。现在正在工作。固定代码如下:
public class SvetlinSurfaceViewTestActivity extends Activity implements SurfaceHolder.Callback { private static final String TAG = "Svetlin SurfaceView"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SurfaceView view = new SurfaceView(this); setContentView(view); view.getHolder().addCallback(this); } @Override public void surfaceCreated(SurfaceHolder holder) { tryDrawing(holder); } @Override public void surfaceChanged(SurfaceHolder holder, int frmt, int w, int h) { tryDrawing(holder); } @Override public void surfaceDestroyed(SurfaceHolder holder) {} private void tryDrawing(SurfaceHolder holder) { Log.i(TAG, "Trying to draw..."); Canvas canvas = holder.lockCanvas(); if (canvas == null) { Log.e(TAG, "Cannot draw onto the canvas as it's null"); } else { drawMyStuff(canvas); holder.unlockCanvasAndPost(canvas); } } private void drawMyStuff(final Canvas canvas) { Random random = new Random(); Log.i(TAG, "Drawing..."); canvas.drawRGB(255, 128, 128); }}


