>> <> is not a valid package name in java. Is that some kind of unicode chars?
It was a typo from my part, had ASCII chars in "<>" place


On Apr 14, 11:39 pm, Raphael <[email protected]> wrote:
> Note that if you want you can use your custom view directly in your
> XML file, without having to manually add it to the layout at runtime.
> To do that:
> - declare your view as a static class or in it's separate java file,
> let's say mypackage.DrawPoints.Mems
> - write something like this in your XML:
> <LinearLayout ...attributes...>
>    < mypackage.DrawPoints.Mems android:layout_width="fill_parent"
> android:layout_height="fill_parent"
>    />
> </LinearLayout>
>
> Note that in the XML layout editor you can use Control-Space to
> trigger auto-completion on the attributes and values. It doesn't know
> your custom class name though.
>
> By the way, how do you get:
>   package <>.DrawPoints;
>
> <> is not a valid package name in java. Is that some kind of unicode chars?
> R/
>
> On Tue, Apr 14, 2009 at 6:53 PM, gandor <[email protected]> wrote:
>
> > Thanks. 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 13, 10:33 pm, Raphael <[email protected]> wrote:
> >> 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/
>
> >> On Mon, Apr 13, 2009 at 5:14 PM, gandor <[email protected]> wrote:
>
> >> > 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>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Beginners" 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-beginners?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to