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