【发布时间】:2013-08-01 21:40:32
【问题描述】:
我正在制作一个游戏应用程序,我需要在这里使用onDraglistener 拖放我在实现onDraglistener 的类上所做的事情。
@Override
public boolean onDrag(View v, DragEvent event) {
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
Log.v("here","drag started");
//no action necessary
break;
case DragEvent.ACTION_DRAG_ENTERED:
//no action necessary
Log.v("here","drag enteres");
break;
case DragEvent.ACTION_DRAG_LOCATION:
int mCurX = (int) event.getX();
int mCurY = (int) event.getY();
Log.v("Cur(X, Y) : " ,"here ::" + mCurX + ", " + mCurY );
break;
case DragEvent.ACTION_DRAG_EXITED:
//no action necessary
Log.v("here","drag exits");
break;
case DragEvent.ACTION_DROP:
.................do what ever when dropped...
}
这是我在 touchlistener 上所做的要拖放的视图:
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
/*
* Drag details: we only need default behavior
* - clip data could be set to pass data as part of drag
* - shadow can be tailored
*/
view.setTag("option"+index);
ClipData data = ClipData.newPlainText("tag", "option"+index);
shadowBuilder = new View.DragShadowBuilder(view);
//start dragging the item touched
view.startDrag(data, shadowBuilder, view, 0);
offsetX = (int)view.getX();//(int)motionEvent.getX();
offsetY = (int)view.getY();//motionEvent.getY();
Log.v("here","it is ::" + (int)motionEvent.getX() + " , "+(int)motionEvent.getY());
return false;
}
现在它构建了阴影生成器,可以将其拖动到您拖动手指的任何位置。
我如何为阴影构建器或视图在未放置到目标时返回其位置设置动画?
我尝试public boolean onInterceptTouchEvent(MotionEvent event) 并移动到父视图并获取 x,y 位置并为其设置动画以返回其原始位置,但它被取消了操作。
有什么方法可以让 x,y 坐标到达视图放置在目标之外的位置。然后我就可以在位置之间设置动画了。
【问题讨论】:
-
嘿! @karan,找到解决您问题的方法了吗?
-
@karan421。你找到解决办法了吗?
-
你好,我在这个帖子里回答了Here in the question of @Beena。
标签: android drag-and-drop