Use handler to update the UI: package com. myandroid. handler; import android. app. activity; import android. OS. bundle; import android. app. activity; import android. content. context; import android. graphics. canvas; import android. graphics. color; import android. graphics. paint; import android. OS. bundle; import android. OS. handler; import android. view. view; public class HandlerViewActivity extends Activity {private MyView myView; private Handler mHandler; public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); myView = new MyView (this); mHandler = new Handler (); mHandler. post (new Runnable () {@ Override public void run () {myView. invalidate (); mHandler. postDelayed (this, 5) ;}}); www.2cto.com setContentView (myView);} class MyView extends View {private float x = 0f; public MyView (Context context) {super (context);} protected void onDraw (Canvas canvas) {super. onDraw (canvas); x + = 1; Paint mPaint = new Paint (); mPaint. setColor (Color. BLUE); canvas. drawRect (x, 40, x + 20, 48, mPaint); canvas. drawRect (x, 54, x + 20, 62, mPaint); canvas. drawCircle (x + 10, 51, 6, mPaint); canvas. drawRect (x + 10, 50, x + 20, 52, mPaint); mPaint. setColor (Color. RED); canvas. drawRect (x, 80, x + 20, 88, mPaint); canvas. drawRect (x, 94, x + 20,102, mPaint); canvas. drawCircle (x + 10, 91, 6, mPaint); canvas. drawRect (x + 10, 90, x + 20, 92, mPaint); mPaint. setColor (Color. YELLOW); canvas. drawRect (x, 120, x + 20,128, mPaint); canvas. drawRect (x, 134, x + 20,142, mPaint); canvas. drawCircle (x + 10,131, 6, mPaint); canvas. drawRect (x + 10,130, x + 20,132, mPaint); mPaint. setColor (Color. GREEN); canvas. drawRect (x, 160, x + 20,168, mPaint); canvas. drawRect (x, 174, x + 20,182, mPaint); canvas. drawCircle (x + 10,171, 6, mPaint); canvas. drawRect (x + 10,170, x + 20,172, mPaint) ;}}after running, four small tanks are displayed moving from left to right: