我正在使用OnDragListener
来拖放图片。我有MOTIONEVENT.ACTION_MOVE
来实现图像移动功能。在动作移动中的某个点,我想结束拖动并移除它的阴影。是否可以在拖动事件中设置操作?在释放手指之前我想调用drop事件。
switch(event.getAction()) {
case MotionEvent.ACTION_MOVE:
//here i want to remove shadow and stop dragging
break;
case DragEvent.ACTION_DROP:break;
}
答案 0 :(得分:0)
您可以在类/片段中实现OnDragListener。
class MyDrag implements OnDragListener {
Drawable image = getResources().getDrawable(
R.drawable.shape_droptarget);
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
// Signals the start of a drag and drop operation
break;
case DragEvent.ACTION_DRAG_ENTERED:
//Signals to a View that the drag point has entered the bounding box of the View
v.setBackgroundDrawable(image);
break;
case DragEvent.ACTION_DRAG_EXITED:
//Signals that the user has moved the drag shadow out of the bounding box of the View or into a descendant view that can accept the data.
v.setBackgroundDrawable(image);
break;
case DragEvent.ACTION_DROP:
// Signals to a View that the user has released the drag shadow, and the drag point is within the bounding box of the View and not within a descendant view that can accept the data.
View view = (View) event.getLocalState();
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);
LinearLayout container = (LinearLayout) v;
container.addView(view);
view.setVisibility(View.VISIBLE);
break;
case DragEvent.ACTION_DRAG_ENDED:
//Signals to a View that the drag and drop operation has concluded.
v.setBackgroundDrawable(image);
default:
break;
}
return true;
}
}
有关详细信息,请参阅此处Drag and Drop