I'm just trying to figure out the best approach for running a scolling background on an android device. The method I have so far.... its pretty laggy. I use threads, which I believe is not the best bet for android platforms @Override public void run() { // Game Loop while(runningThread){ //Scroll background down bgY += 1; try { this.postInvalidate(); t.sleep(10); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } where postinvalidate in the onDraw function simply pushings the background image down canvas.drawBitmap(backgroundImage, bgX, bgY, null); Thanks in advance ----------------- **UPDATE & SOLUTION** Thank you for everyone helping me. I came across this: post http://stackoverflow.com/questions/1430741/how-to-draw-lots-of-bitmaps-on-screen-in-an-android-game-without-slow-performance Helped my problem a lot. However, Seemed I was creating bitmaps in the onDraw every time is was caused, meaning that was doing 95% of the slowing down. oops :) Below is my inner class in my surfaceview for reference purposes class MapThread extends Thread{ private Map map; private SurfaceHolder holder; private boolean run = false; public MapThread(Map map, SurfaceHolder holder){ this.holder = holder; this.map = map; setRunning(true); } public void setRunning(boolean run){ this.run = run; } @Override public void run(){ while(run){ try{ Canvas c = null; try { c = holder.lockCanvas(null); synchronized (holder) { map.onDraw(c); } } finally { if (c != null) { holder.unlockCanvasAndPost(c); } } } } }