If you only need to draw in response to user input, then you just get the canvas and draw after the user inputs.
Otherwise you need a thread that runs a main loop. Either way, when you do your draw, you do this. Canvas c = surfaceHolder.lockCanvas(); doDraw(c); surfaceHolder.unlockCanvasAndPost(c); SurfaceViews don't call a draw method like a regular view, you have to push the draw on your own terms. On Jun 2, 8:53 pm, Mike <[email protected]> wrote: > surfaceview doesn't use onDraw. check the lunar lander sample app in > the sdk. it uses surfaceview. > > On Jun 2, 6:31 pm, klirr <[email protected]> wrote: > > > Problems with using SurfaceView, I don't understand how to draw to it. > > It has to be done manually? How? > > > package com.android.WWS; > > > import android.app.Activity; > > import android.content.Context; > > import android.graphics.*; > > import android.os.Bundle; > > import android.view.SurfaceView; > > import android.view.KeyEvent; > > import android.view.View; > > import android.view.View.OnKeyListener; > > > public class WWS extends Activity { > > > @Override > > protected void onCreate(Bundle savedInstanceState) { > > super.onCreate(savedInstanceState); > > setContentView(new GameView(this)); > > } > > > private static class GameView extends SurfaceView implements > > OnKeyListener { > > private Paint mPaint = new Paint(); > > private int x; > > private int y; > > > public GameView(Context context) { > > super(context); > > x = 135; > > y = 303; > > setFocusable(true); > > requestFocus(); > > } > > > @Override > > public void onDraw(Canvas canvas) { > > Paint paint = mPaint; > > canvas.translate(10, 10); > > canvas.drawColor(Color.rgb(184,134,11)); > > paint.setColor(Color.rgb(107,142,35)); > > paint.setStrokeWidth(1); > > canvas.drawRect(x, y, x+30, y+7, paint); > > canvas.drawRect(x+10, y+7, x+20, y+27, paint); > > canvas.drawRect(x+5, y+27, x+25, y+32, paint); > > } > > > public boolean onKey(View v, int keyCode, KeyEvent event) { > > if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { > > y -= 3; > > } else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { > > x -= 3; > > } else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { > > y += 3; > > } else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { > > x += 3; > > } > > return true; > > } > > > } > > > } > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

