You should check Lunar Lander from SDK samples.
The main idea is to get SurfaceHolder and pass it to separate thread.
This thread should update the screen in it's run() method.

The contents of the run method may look like this:

while (threadRun) {
Canvas c = null;
                        try {
                                        synchronized (surfaceHolder) {
                                                c = surfaceHolder.lockCanvas();
                                                //Your drawing code goes here
                                        }
                        } finally {
                                if (c != null) {
                                        surfaceHolder.unlockCanvasAndPost(c);
                                }
                        }
}

On Jun 1, 5:49 am, klirr <haskell...@gmail.com> wrote:
> I had it working with a normal View but that is to slow. I was told to
> use SurfaceView but can't figure out how to use OnKey with it and if I
> should use onDraw or draw?
> And how do I pass stuff to draw? does it happen automatically?
>
> 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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to