Here is the code of my two files: package com.drawing;
import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import com.drawing.LemonadeMainMenuView.LemonadeMainMenuThread; public class Main extends Activity{ private LemonadeMainMenuThread mLemonadeMainMenuThread; private LemonadeMainMenuView mLemonadeMainMenuView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mLemonadeMainMenuView = (LemonadeMainMenuView) findViewById(R.id.lunar); mLemonadeMainMenuThread = mLemonadeMainMenuView.getThread(); } @Override public boolean onTouchEvent(MotionEvent event) { mLemonadeMainMenuView.setCoords(event.getX(), event.getY(), 11); return true; } } and.... package com.drawing; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.Rect; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.widget.TextView; public class LemonadeMainMenuView extends SurfaceView implements SurfaceHolder.Callback{ private boolean mRun = false; public boolean b = false; class LemonadeMainMenuThread extends Thread { Bitmap bitmap = null; private SurfaceHolder mSurfaceHolder; private Handler mHandler; private Context mContext; public void setRunning(boolean b) { mRun = b; } public LemonadeMainMenuThread(SurfaceHolder surfaceHolder, Context context, Handler handler) { mSurfaceHolder = surfaceHolder; mHandler = handler; mContext = context; } Resources res = getResources(); @Override public void run() { while (mRun) { Canvas c = null; try { c = mSurfaceHolder.lockCanvas(null); synchronized (mSurfaceHolder) { c.restore(); doDraw(c); c.save(); } } finally { if (c != null) { mSurfaceHolder.unlockCanvasAndPost(c); } } } } private void doDraw(Canvas canvas) { if (bitmap == null) { bitmap = Bitmap.createBitmap(1000, 1000,Bitmap.Config.ARGB_8888); canvas.setBitmap(bitmap); } if(b){ canvas.drawColor(Color.TRANSPARENT); canvas.drawBitmap(bitmap, 0, 0, null); Paint paint = new Paint(); paint.setColor(Color.BLUE); paint.setStyle(Style.FILL); canvas.drawCircle(mx, my, msize, paint); } }} private TextView mStatusText; private LemonadeMainMenuThread thread; public int mx; public int my; public int msize; public LemonadeMainMenuView(Context context, AttributeSet attrs) { super(context, attrs); SurfaceHolder holder = getHolder(); holder.addCallback(this); thread = new LemonadeMainMenuThread(holder, context, new Handler() { @Override public void handleMessage(Message m) { } }); setFocusable(true); } public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { } public void surfaceCreated(SurfaceHolder arg0) { thread.setRunning(true); thread.start(); } public LemonadeMainMenuThread getThread() { return thread; } public LemonadeMainMenuThread setThreadRunning(boolean b) { mRun = b; return thread; } public LemonadeMainMenuThread setCoords(float f, float g, int size) { mx = (int) f; my = (int) g; msize = size; b = true; return thread; } public void setTextView(TextView textView) { mStatusText = textView; } public void surfaceDestroyed(SurfaceHolder arg0) { } } main.xml just displays LemonadeMainMenu.java -- 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