Thanks guys. Yes now it works. Had to use event.getAction and draw
method.

package <>.DrawPoints;

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.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.LinearLayout;
import android.widget.TextView;

public class DrawPoints extends Activity implements OnTouchListener{
        static int i = 0;
         float x = 200;
         float y = 200;
         float x1 = 0;
         float y1 = 0;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //View topLayout = this.findViewById(R.id.layout_id);
        LinearLayout layMain =  (LinearLayout)this.findViewById
(R.id.layout_id);
        // register for events for the view, previously
        //topLayout.setOnTouchListener((OnTouchListener) this);
        layMain.setOnTouchListener((OnTouchListener) this);
        layMain.addView(new Mens(this));


}
  // the following callback is called when touch event on screen
happens
        @Override
        public boolean onTouch(View v, MotionEvent event) {
                String tag = null;

                switch (event.getAction())
            {
                case MotionEvent.ACTION_DOWN:
                {
                        x = event.getX();
                        y = event.getY();
                }
            }
               return false;
        }


        public class Mens extends View {

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

             }

             protected void onDraw(Canvas canvas)
            {
                  Paint p = new Paint();
                  p.setColor(Color.RED);

                  canvas.drawLine(15, 15, x , y, p);
                  invalidate();
            }

     }


}





On Apr 14, 5:40 am, Per Sandström <[email protected]> wrote:
> Here is another bug in the code:
>
> if(i == 0) {
>                 static_x = event.getX();
>                 static_y = event.getY();
>                 i = 1;
>                 } else
>                 {
>                         static_x1 = event.getX();
>                         static_y1 = event.getY();
>
>                 }
>            // want to draw a line at this stage after figuring out two
> screen
> touches have been performed ??
>                if(i == 1) {
>
> As you can see, you set "i = 1" on the first time this function is
> called. Thus the second if-statement is always true. Add an "else"
> before the last "if"
>
> On Apr 14, 2:12 am, gandor <[email protected]> wrote:
>
> > Hi Folks,
>
> > Want to draw a line when I touch screen at two points.
> > I can see OnTouch been invoked but after than everything breaks looks,
> > the application crashes
>
> > I am using drawLine in Canvas.
> > Please let me know what I am doing wrong
>
> > Thanks a ton
>
> > ----------------
> > <?xml version="1.0" encoding="utf-8"?>
> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/
> > android"
> >     android:id="@+id/layout_id"
> >     android:orientation="vertical"
> >     android:layout_width="fill_parent"
> >     android:layout_height="fill_parent"
> >     >
> > <TextView
> >     android:layout_width="fill_parent"
> >     android:layout_height="wrap_content"
> >     android:text="@string/hello"
> >     />
> > </LinearLayout>
> > --------------
>
> > package <>.DrawPoints;
>
> > 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.util.Log;
> > import android.view.MotionEvent;
> > import android.view.View;
> > import android.view.View.OnTouchListener;
> > import android.widget.TextView;
>
> > public class DrawPoints extends Activity implements OnTouchListener{
> >         static int i = 0;
> >         static float static_x = 0;
> >         static float static_y = 0;
> >         static float static_x1 = 0;
> >         static float static_y1 = 0;
>
> >     /** Called when the activity is first created. */
> >     @Override
> >     public void onCreate(Bundle savedInstanceState) {
> >         super.onCreate(savedInstanceState);
> >         setContentView(R.layout.main);
> >         View topLayout = this.findViewById(R.id.layout_id);
> >         // register for events for the view, previously
> >         topLayout.setOnTouchListener((OnTouchListener) this);
>
> > }
>
> >   // the following callback is called when touch event on screen
> > happens
> >         @Override
> >         public boolean onTouch(View v, MotionEvent event) {
> >                 String tag = null;
>
> >                 if(i == 0) {
> >                 static_x = event.getX();
> >                 static_y = event.getY();
> >                 i = 1;
> >                 } else
> >                 {
> >                         static_x1 = event.getX();
> >                         static_y1 = event.getY();
>
> >                 }
> >            // want to draw a line at this stage after figuring out two 
> > screen
> > touches have been performed ??
> >                if(i == 1) {
> >                Paint p = new Paint();
> >                p.setColor(Color.WHITE);
> >            p.setStyle(Paint.Style.STROKE);
> >           Canvas canvas = new Canvas();
> >            canvas.drawColor(Color.BLUE);
>
> >            canvas.drawLine(static_x, static_y, static_x1, static_y1,
> > p);
> >                 i = 0;
> >         }
>
> >                return false;
> >         }
>
> >      }
--~--~---------~--~----~------------~-------~--~----~
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