Introduce new member variables of your class:
int mOffsetX;
int mOffsetY;

Then below you do something like:

if ( action == MotionEvent.ACTION_DOWN ) {
    System.out.println("X="+mCurX+"  y="+mCurY);
    this.setText("x: " + mCurX + ",y: " + mCurY );

    mOffsetX = mCurX - 10; // 10 was the initial coordinate
    mOffsetY = mCurY - 10;

   } else if ( action == MotionEvent.ACTION_MOVE ) {
    System.out.println("X="+mCurX+"  y="+mCurY);
    this.setText("x: " + mCurX + ",y: " + mCurY );
    AbsoluteLayout.LayoutParams p = new
    AbsoluteLayout.LayoutParams
(AbsoluteLayout.LayoutParams.WRAP_CONTENT,
      AbsoluteLayout.LayoutParams.WRAP_CONTENT,this.getScrollX()+
mCurX + mOffsetX,
      this.getScrollY()+mCurY + mOffsetY); //// Here you add the
offset values.
    this.setLayoutParams (p);

   }

I hope this helps as a pointer. Note that after you placed the object
to a new position, you have to remember the new coordinates (instead
of (10,10) where you started originally).

ACTION_DOWN is called when you click the mouse button, ACTION_MOVE is
called while you click and drag, and ACTION_UP is called when you
release the mouse button. Replace mouse by finger on the actual
device :-)

I hope this is what you meant.

Peli
www.openintents.org


On Jan 9, 2:46 pm, "kaushik sur" <kaushik....@gmail.com> wrote:
> hi
>
> Can you please illustrate the scenarios of the constants
> ACTION_MOVE,ACTION_DOWN,ACTION_UP ?
>
> regards
> Kaushik
>
> On Fri, Jan 9, 2009 at 6:22 PM, Peli <peli0...@googlemail.com> wrote:
>
> > what you have to do is, remember the coordinates that you get with the
> > ACTION_DOWN event.
>
> > Remember the distance (difference) between those coordinates and the
> > original coordinates of your image (call that offsetX and offsetY),
> > and subsequently in ACTION_MOVE always add those offset values.
>
> > Peli
>
> > On Jan 9, 11:36 am, "kaushik sur" <kaushik....@gmail.com> wrote:
> > > Hi Peli
>
> > > here i attach my code, to be added , i have ressolved the issue of double
> > > image by getting rawX() value of the event , and setting my absolute
> > layout
> > > according to that.
> > > but here i get a unique problem, whenever i click the button and try to
> > drag
> > > it, the mouse tip comes to a certain pixels above from the topleft corner
> > of
> > > the button,like a offset distance,if you run the code on the emulator u
> > wil
> > > find this problem.
> > > can anyone help to solve this?
>
> > > package com.google.android.samples.view.draganddrop;
>
> > > import android.app.Activity;
> > > import android.content.Context;
> > > import android.graphics.Canvas;
> > > import android.os.Bundle;
> > > import android.view.MotionEvent ;
> > > import android.view.View;
> > > import android.view.View.OnClickListener;
> > > import android.widget.AbsoluteLayout;
> > > import android.widget.Button;
> > > import android.widget.Toast;
>
> > > public class Drag_And_Drop extends Activity {
> > >  /** Called when the activity is first created. */
>
> > > �...@override
> > >  public void onCreate(Bundle icicle) {
> > >   super.onCreate(icicle);
>
> > >   MyView tx = new MyView(this);
> > >   tx.setText("Drag Me");
> > >   AbsoluteLayout l = new AbsoluteLayout(this);
>
> > >   AbsoluteLayout.LayoutParams p = new AbsoluteLayout.LayoutParams(
> > >     AbsoluteLayout.LayoutParams.WRAP_CONTENT,
> > >     AbsoluteLayout.LayoutParams.WRAP_CONTENT,10,10);
> > >   l.addView(tx,p);
> > >   setContentView(l);
>
> > >  }
>
> > >  class MyView extends Button
> > >  {
> > >   public MyView(Context c){
> > >    super(c);
>
> > >   }
>
> > >   @Override
> > >   public boolean dispatchTouchEvent(MotionEvent event) {
> > >    int    mCurX=(int)event.getRawX();
> > >    int mCurY=(int)event.getRawY();;
> > >    System.out.println("scrollx "+this.getScrollX());
> > >    int action = event.getAction();
> > >    if ( action == MotionEvent.ACTION_MOVE ) {
> > >     System.out.println("X="+mCurX+"  y="+mCurY);
> > >     this.setText("x: " + mCurX + ",y: " + mCurY );
> > >     AbsoluteLayout.LayoutParams p = new
> > >     AbsoluteLayout.LayoutParams(AbsoluteLayout.LayoutParams.WRAP_CONTENT,
> > >       AbsoluteLayout.LayoutParams.WRAP_CONTENT,this.getScrollX()+ mCurX,
> > >       this.getScrollY()+mCurY);
> > >     this.setLayoutParams (p);
>
> > >    }
> > >    return true;
> > >   }
>
> > >   @Override
> > >   public void draw(Canvas canvas) {
> > >    // TODO Auto-generated method stub
> > >    super.draw(canvas);
>
> > >   }
>
> > >  }
>
> > > }
>
> > > #####main.xml#####
>
> > > <?xml version=*"1.0"* encoding=*"utf-8"*?>
>
> > > <LinearLayout xmlns:android=*"http://schemas.android.com/apk/res/android
> > "
> > > *
>
> > > 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"
> > > *
>
> > > />
>
> > > <Button
>
> > > android:id=*"@+id/button"
> > > *
>
> > > android:layout_width=*"fill_parent"
> > > *
>
> > > android:layout_height=*"wrap_content"
> > > *
>
> > > android:text=*"start transfer"
> > > *
>
> > > />
>
> > > </LinearLayout>
>
> > > regards
> > > Kaushik
>
> >  > On Thu, Jan 8, 2009 at 11:23 PM, Dan Raaka <micromys...@gmail.com>
> > wrote:
>
> > > > Refer Launcher code in the source tree.
>
> > > > -M
>
> > > > On Jan 8, 8:13 am, "kaushik.siso" <kaushik....@gmail.com> wrote:
> > > > > hi
>
> > > > > i want to know how can i enbale Drag and drop feature in android.
> > > > > suppose i have a image,which are to be dragged and dropped on another
> > > > > result and it will start a new activity.
> > > > > i seek your help to  get a head-start atleast.
>
> > > > > regards
> > > > > k...@sis
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to