Drag and Drop

by Apoorva » Tue, 01 Jul 2008 16:40:59 GMT


Sponsored Links
 Can anyone suggest how to create drag and drop utility amongst the
views present on the screen?

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



DRAG AND DROP

by kaushik.siso » Fri, 09 Jan 2009 00:13:37 GMT


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


Sponsored Links


DRAG AND DROP

by kaushik sur » Fri, 09 Jan 2009 02:06:21 GMT


 hi

i got a suggestion here. but i really doubt whether it will work or not.



DRAG AND DROP

by Dianne Hackborn » Fri, 09 Jan 2009 02:23:26 GMT


 Sorry, there is no support for this currently built into the platform, you
will have to roll it yourself.  You shouldn't have trouble doing it yourself
for drag and drop in the same window (you can look at the standard home
screen for an example), but without system support doing it across windows
is much more challenging.






-- 
Dianne Hackborn
Android framework engineer
hack...@android.com

Note: please don't send private questions to me, as I don't have time to
provide private support.  All such questions should be posted on public
forums, where I and others can see and answer them.

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



DRAG AND DROP

by kaushik sur » Fri, 09 Jan 2009 02:34:14 GMT


 hi DIanne

thanks for ur suggestion. but suppose i want to do it on the same
widnow,then what will be the procedure.
trully speaking i am not getting any clue of that. i need prior info to
atleast check this feature on a single window

regards
kaushik






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



DRAG AND DROP

by Peli » Fri, 09 Jan 2009 03:12:40 GMT


 The code sample you linked to should work.

The basic idea is that you continuously put your image to a new
position according to the coordinates that you obtain through
ACTION_MOVE to give the illusion of dragging.
In ACTION_UP you check whether the finger position is close to the
target.
in ACTION_DOWN you can remember the initial finger coordinates so that
you can grab your icon everywhere correctly.

Basically you have to code everything by yourself, but it should not
be very difficult.

Peli
www.openintents.org



> not.



DRAG AND DROP

by Romain Guy » Fri, 09 Jan 2009 03:16:42 GMT


 You can also look at the source code of the Home (Launcher)
application, in particular the class called DragLayer.




>> not.



DRAG AND DROP

by Peli » Fri, 09 Jan 2009 05:09:27 GMT


 which can be found here:
 http://android.git.kernel.org/?p=platform/packages/apps/Launcher.git ;a=blob;f=src/com/android/launcher/DragLayer.java
with the related classes being here:
 http://android.git.kernel.org/?p=platform/packages/apps/Launcher.git ;a=tree;f=src/com/android/launcher

but this is the luxury version, including scaling of the image, scroll
zones, and vibration :-)

Peli





> >> not.



DRAG AND DROP

by kaushik sur » Fri, 09 Jan 2009 15:41:59 GMT


 i all

i have mentioned about a code link which can be used as an e.g. of the
Drag_N_Drop feature, but there will be small change.
the onMotionEvent(MotionEvent event) has to be replaced by
onTouchEvent(MotionEvent event).
though it starts the Drag_n_drop but it not smooth as u expect.
rather here i am getting a abnormal behavior,i.e, i am getting double image
of the button, that i drag and drop,Can anyone run the code sample and solve
the issue...?

regards
Kaushik

On Fri, Jan 9, 2009 at 2:39 AM, Peli <peli0...@googlemail.com> wrote:


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



DRAG AND DROP

by Peli » Fri, 09 Jan 2009 17:14:19 GMT


  don't know what your final code looks like that you use, but you can
change the visibility of the original item you are dragging
temporarily using setVisibility(View.INVISIBLE) or View.GONE depending
on how your layout is organized, so that only one item is visible
while dragging.

You could post your code here if you need further help.

Peli

On 9 Jan., 08:41, "kaushik sur" <kaushik....@gmail.com> wrote:
--~--~---------~--~----~------------~-------~--~----~



DRAG AND DROP

by Dan Raaka » Fri, 09 Jan 2009 18:02:03 GMT


 Refer Launcher code in the source tree.

-M




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



DRAG AND DROP

by kaushik sur » Fri, 09 Jan 2009 18:36:39 GMT


 i 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:


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



DRAG AND DROP

by Peli » Fri, 09 Jan 2009 20:53:03 GMT


 hat 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:36am, "kaushik sur" <kaushik....@gmail.com> wrote:
--~--~---------~--~----~------------~-------~--~----~



DRAG AND DROP

by kaushik sur » Fri, 09 Jan 2009 21:47:03 GMT


 i

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:


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



DRAG AND DROP

by Peli » Fri, 09 Jan 2009 22:29:10 GMT


 ntroduce 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:46pm, "kaushik sur" <kaushik....@gmail.com> wrote:
--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. Any way to avoid garbage collection on these lines? Bitmap.createBitmap / new Canvas(bitmap)

> I'm happy to keep a static or member reference to the Bitmap object




To me, the key word there is "many".

If really do mean "many", then cache the Bitmap (or perhaps the Canvas) in
a data member or local variable or something until you are outside your
loop and no longer need it. If at that point you are not expecting to
re-enter that loop for some time, null out the data member and let garbage
collection reclaim the space. If you are likely to re-enter the loop soon
and will need the exact same Bitmap again, you may as well hold onto it.

-- 
Mark Murphy (a Commons Guy)
http://commonsware.com
_The Busy Coder's Guide to Android Development_ Version 2.0 Available!



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

2. Can an event be added to G1 Calendar from any other application?

HI,

I need to add an event from my Social Networking Client App on G1 to
the Calendar present on G1.

Calendar Service Provider, and Content Resolver needs to be used for
this purpose.

But the Calendar Service provider is not accessible using the
android.provider package.
Reference:http://developer.android.com/reference/android/provider/
package-summary.html

Is there any other method through which I can import Calendar
Provider/ is a jar file available for these classes that I can add to
my project ?

OR

Is there any other direct method to add event to the G1 native
Calendar database ???

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

3. Multiple Instance of Media Player in Android G1

4. Audio Flinger and Mixer operations

5. Can somebody provide a gps test app?

6. How to get source code of default Messaging application in Android?

7. Edit Contacts Database