Hello,

I'm trying to create a finger paint application using surfaceview.
I have tried and able to paint on the screen using view but when I use
surfaceview
,I can't draw on the screen.

can anybody tell me how to solve this problem.

CODE

Main Activity

public class MainAct extends Activity {
        DrawView drawView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set full screen view
 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        drawView = new DrawView(this);
        setContentView(drawView);
        drawView.requestFocus();
    }
}



DrawView.class


public class DrawView extends SurfaceView implements
SurfaceHolder.Callback{
         private static final String TAG = "DrawView";

            List<Point> points = new ArrayList<Point>();
            Paint paint = new Paint();
            Thread mainLoop = null;

            public DrawView(Context context) {
                super(context);

                getHolder().addCallback(this);
                setFocusable(true);
                setFocusableInTouchMode(true);
                paint.setAntiAlias(true);
                paint.setColor(Color.WHITE);
                paint.setAntiAlias(true);
            }
            public void doDraw(){
                Canvas canvas = getHolder().lockCanvas();
                canvas.drawColor(Color.BLACK);
                canvas.drawCircle(50, 50, 50, paint);
                        for (Point point : points) {
                            canvas.drawCircle(point.x, point.y, 25, paint);
                            // Log.d(TAG, "Painting: "+point);

                     }
                         getHolder().unlockCanvasAndPost(canvas);
            }

                @Override
                public void surfaceChanged(SurfaceHolder holder, int format, int
width,
                                int height) {
                        // TODO Auto-generated method stub

                }

                @Override
                public void surfaceCreated(SurfaceHolder holder) {
                        // TODO Auto-generated method stub
                        Log.d(getClass().getName(), "surfaceCreated");
                        doDraw();
                }

                @Override
                public void surfaceDestroyed(SurfaceHolder holder) {
                        // TODO Auto-generated method stub

                }
                @Override
                public boolean onTouchEvent(MotionEvent event) {
                // if(event.getAction() != MotionEvent.ACTION_DOWN)
                //return super.onTouchEvent(event);
                        Point point = new Point();
                point.x = event.getX();
                point.y = event.getY();
                points.add(point);
                Log.d(TAG, "point: " + point);
                return super.onTouchEvent(event);
            }
        }

        class Point {
            float x, y;

            @Override
            public String toString() {
                return x + ", " + y;
            }
        }



Thank you
Hassy

-- 
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

Reply via email to