How to I use touch screen to draw a straight line

by gandor » Tue, 14 Apr 2009 13:05:12 GMT


Sponsored Links
 Hi,

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



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();

                }

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


     }


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



--~--~---------~--~----~------------~-------~--~----~



How to I use touch screen to draw a straight line

by Raphael » Tue, 14 Apr 2009 13:33:25 GMT


 A couple suggestions:

- don't make your x/y fields static.
- in onTouch, test that MotionEvent.getAction() is ACTION_DOWN.
- to draw you should create a custom View class and override the
onDraw method. See ApiDemos or the LunarLander samples for a start.

R/




--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


Other Threads

1. Increasing the priority of an activity

Hi,

Let me say this with an example. Lets say, my activity A is being
executed, meanwhile another activity B gets launched. By default,
activity B will come on top of activity A. My requirement is that I
want to keep A on top. Only activities such as phone, lock screen and
home screen can come on top of me not other activities unless my
activity closes.

Can anyone tell me on how to achieve this.

Thank you,
Soumya
Wipro Technologies

-- 

2. hey all,question for popupwindow

i want use menu to show popupwindow and close it.

but when Popupwindow setFousable,my menu could't close it

anyone could fix it ?

-- 

3. Phonefactory.getDefault Phone must be called from looper thread

4. Error while build source code for SuperH arch

5. OOT: TENKYU pisan for the b'day wishes

6. LED not glowing while connecting USB

7. App crashing and restarting phone