android.view.DragEvent#ACTION_DRAG_LOCATION源码实例Demo

下面列出了android.view.DragEvent#ACTION_DRAG_LOCATION 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: LaunchEnr   文件: FlingToDeleteHelper.java
/**
 * Same as {@link #recordMotionEvent}. It creates a temporary {@link MotionEvent} object
 * using {@param event} for tracking velocity.
 */
void recordDragEvent(long dragStartTime, DragEvent event) {
    final int motionAction;
    switch (event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            motionAction = MotionEvent.ACTION_DOWN;
            break;
        case DragEvent.ACTION_DRAG_LOCATION:
            motionAction = MotionEvent.ACTION_MOVE;
            break;
        case DragEvent.ACTION_DRAG_ENDED:
            motionAction = MotionEvent.ACTION_UP;
            break;
        default:
            return;
    }
    MotionEvent emulatedEvent = MotionEvent.obtain(dragStartTime, SystemClock.uptimeMillis(),
            motionAction, event.getX(), event.getY(), 0);
    recordMotionEvent(emulatedEvent);
    emulatedEvent.recycle();
}
 
源代码2 项目: Yahala-Messenger   文件: PasswordButton.java
@Override
public boolean onDragEvent(DragEvent event) {
    PasswordStateObject state = (PasswordStateObject) event.getLocalState();
    if (event.getAction() == DragEvent.ACTION_DRAG_LOCATION) {
        if (!state.toString().contains((String) getTag())) {
            state.append((String) getTag());
            ((PasswordListener) getParent()).onPasswordButtonTouched(this);
            setBackgroundResource(R.drawable.loginbuttonpressed);
        }
    }
    if (event.getAction() == DragEvent.ACTION_DRAG_ENDED)
        if (state != null) {
            state.passwordComplete();
        }
    return true;
}
 
源代码3 项目: Yahala-Messenger   文件: PasswordGrid.java
@Override
public boolean onDragEvent(DragEvent event) {
    if (event.getAction() == DragEvent.ACTION_DRAG_LOCATION) {
        Point p = new Point((int) event.getX(), (int) event.getY());
        if (!roaming) {
            roaming = true;
            points.add(p);
        } else {
            try {
                points.set(points.size() - 1, p);
            } catch (Exception e) {
                Reset();
                FileLog.e("Yahala", e);
            }
        }
        invalidate();
    }
    return true;
}
 
@Override
public boolean onDrag(View view, DragEvent event) {
    switch (event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            intercept = false;
            startTime = SystemClock.uptimeMillis();
            dispatchTouchEvent(view, MotionEvent.ACTION_DOWN, event.getX(), event.getY());
            // Return true to receive further events.
            return true;

        case DragEvent.ACTION_DRAG_LOCATION:
            dispatchTouchEvent(view, MotionEvent.ACTION_MOVE, event.getX(), event.getY());
            return false;

        case DragEvent.ACTION_DRAG_ENDED:
            dispatchTouchEvent(view, MotionEvent.ACTION_UP, event.getX(), event.getY());
            return false;

        default:
            return false;
    }
}
 
@Override
public boolean onDrag(View view, DragEvent event) {
    // Change the color of the target for all events.
    // For the drop action, set the view to the dropped image.
    switch (event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            setTargetColor(view, COLOR_ACTIVE);
            return true;

        case DragEvent.ACTION_DRAG_ENTERED:
            setTargetColor(view, COLOR_HOVER);
            return true;

        case DragEvent.ACTION_DRAG_LOCATION:
            processLocation(event.getX(), event.getY());
            return true;

        case DragEvent.ACTION_DRAG_EXITED:
            setTargetColor(view, COLOR_ACTIVE);
            return true;

        case DragEvent.ACTION_DROP:
            return processDrop(view, event);

        case DragEvent.ACTION_DRAG_ENDED:
            setTargetColor(view, COLOR_INACTIVE);
            return true;

        default:
            break;
    }

    return false;
}
 
@Override
public boolean onDrag(View view, DragEvent event) {
    switch (event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            setTargetColor(view, COLOR_ACTIVE);
            return true;

        case DragEvent.ACTION_DRAG_ENTERED:
            setTargetColor(view, COLOR_HOVER);
            return true;

        case DragEvent.ACTION_DRAG_LOCATION:
            processLocation(event.getX(), event.getY());
            return true;

        case DragEvent.ACTION_DRAG_EXITED:
            setTargetColor(view, COLOR_ACTIVE);
            return true;

        case DragEvent.ACTION_DROP:
            return processDrop(view, event);

        case DragEvent.ACTION_DRAG_ENDED:
            setTargetColor(view, COLOR_INACTIVE);
            return true;

        default:
            break;
    }

    return false;
}
 
源代码7 项目: LaunchEnr   文件: DragDriver.java
@Override
public boolean onDragEvent (DragEvent event) {
    final int action = event.getAction();

    switch (action) {
        case DragEvent.ACTION_DRAG_STARTED:
            mLastX = event.getX();
            mLastY = event.getY();
            return true;

        case DragEvent.ACTION_DRAG_ENTERED:
            return true;

        case DragEvent.ACTION_DRAG_LOCATION:
            mLastX = event.getX();
            mLastY = event.getY();
            mEventListener.onDriverDragMove(event.getX(), event.getY());
            return true;

        case DragEvent.ACTION_DROP:
            mLastX = event.getX();
            mLastY = event.getY();
            mEventListener.onDriverDragMove(event.getX(), event.getY());
            mEventListener.onDriverDragEnd(mLastX, mLastY);
            return true;
        case DragEvent.ACTION_DRAG_EXITED:
            mEventListener.onDriverDragExitWindow();
            return true;

        case DragEvent.ACTION_DRAG_ENDED:
            mEventListener.onDriverDragCancel();
            return true;

        default:
            return false;
    }
}
 
@Override
public boolean onDrag(View view, DragEvent event) {
    // Change the color of the target for all events.
    // For the drop action, set the view to the dropped image.
    switch (event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            setTargetColor(view, COLOR_ACTIVE);
            return true;

        case DragEvent.ACTION_DRAG_ENTERED:
            setTargetColor(view, COLOR_HOVER);
            return true;

        case DragEvent.ACTION_DRAG_LOCATION:
            processLocation(event.getX(), event.getY());
            return true;

        case DragEvent.ACTION_DRAG_EXITED:
            setTargetColor(view, COLOR_ACTIVE);
            return true;

        case DragEvent.ACTION_DROP:
            return processDrop(view, event);

        case DragEvent.ACTION_DRAG_ENDED:
            setTargetColor(view, COLOR_INACTIVE);
            return true;

        default:
            break;
    }

    return false;
}
 
@Override
public boolean onDrag(View view, DragEvent event) {
    switch (event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            setTargetColor(view, COLOR_ACTIVE);
            return true;

        case DragEvent.ACTION_DRAG_ENTERED:
            setTargetColor(view, COLOR_HOVER);
            return true;

        case DragEvent.ACTION_DRAG_LOCATION:
            processLocation(event.getX(), event.getY());
            return true;

        case DragEvent.ACTION_DRAG_EXITED:
            setTargetColor(view, COLOR_ACTIVE);
            return true;

        case DragEvent.ACTION_DROP:
            return processDrop(view, event);

        case DragEvent.ACTION_DRAG_ENDED:
            setTargetColor(view, COLOR_INACTIVE);
            return true;

        default:
            break;
    }

    return false;
}
 
@Override
public boolean onDrag(View v, DragEvent event) {
    switch(event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            onDropListener.onDragStarted();
            return true;

        case DragEvent.ACTION_DRAG_ENTERED:
            return true;

        case DragEvent.ACTION_DRAG_LOCATION:
            // Ignore the event
            onDropListener.onDragLocation(event.getX(), event.getY());
            return true;

        case DragEvent.ACTION_DRAG_EXITED:
            return true;

        case DragEvent.ACTION_DROP:
            onDropListener.onDrop();
            return true;

        case DragEvent.ACTION_DRAG_ENDED:
            onDropListener.onDragEnded();
            return true;

        default:
            break;
    }

    return false;
}
 
源代码11 项目: Android_UE   文件: ViewDragListenerView.java
@Override
    public boolean onDrag(View view, DragEvent dragEvent) {
        switch (dragEvent.getAction()) {
            case DragEvent.ACTION_DRAG_STARTED:
                if (dragEvent.getLocalState() == view) {
                    view.setVisibility(View.INVISIBLE);
                }
                // 开始拖拽
                Log.e(TAG, "开始拖拽");
                break;
            case DragEvent.ACTION_DRAG_LOCATION:
                // 主要是感觉是在拖动中就会回调
//                Log.e(TAG, "主要是感觉是在拖动中就会回调");
                break;
            case DragEvent.ACTION_DROP:
                // 向用户已释放拖动阴影的视图发出信号,拖动点位于视图的边界框内,而不在可接受数据的后代视图中。
                Log.e(TAG, "向用户已释放拖动阴影的视图发出信号,拖动点位于视图的边界框内,而不在可接受数据的后代视图中。");
                break;
            case DragEvent.ACTION_DRAG_ENDED:
                // 拖拽已结束
                Log.e(TAG, "拖拽已结束");
                if (dragEvent.getLocalState() == view) {
                    view.setVisibility(View.VISIBLE);
                }
                break;
            case DragEvent.ACTION_DRAG_ENTERED:
                // 拖拽的View已经到了其他View的范围,判断点为手指触摸的位置
                if (dragEvent.getLocalState() != view) {
                    // 每个View都会收到的,所以要排除掉自己
                    sortView(view);
                    Log.e(TAG, "拖拽的View已经到了其他View的范围");

                }
                break;
            case DragEvent.ACTION_DRAG_EXITED:
                // 移出了当前View的范围,判断点为手指触摸的位置
                Log.e(TAG, "移出了当前View的范围");
                break;
        }
        return true;
    }
 
源代码12 项目: ssj   文件: PipeOnDragListener.java
/**
     * @param v     View
     * @param event DragEvent
     * @return boolean
     */
    @Override
    public boolean onDrag(final View v, final DragEvent event)
    {
        if (v instanceof PipeView)
        {
            final PipeView pipeView = (PipeView) v;
            switch (event.getAction())
            {
                case DragEvent.ACTION_DRAG_STARTED:
                {
                    //init values
                    xCoord = 0;
                    yCoord = 0;
                    dropped = false;
                    createRecycleBin(pipeView);
                    break;
                }
                case DragEvent.ACTION_DRAG_ENTERED:
                    break;
                case DragEvent.ACTION_DRAG_EXITED:
                    break;
                case DragEvent.ACTION_DROP:
                    //update drop location
                    xCoord = event.getX();
                    yCoord = event.getY();
                    dropped = true;
                    ComponentView view = (ComponentView) event.getLocalState();
                    pipeView.getGrid().setGridValue(view.getGridX(), view.getGridY(), false);
                    break;
                case DragEvent.ACTION_DRAG_ENDED:
                    cleanup(pipeView, event);
                    break;
                case DragEvent.ACTION_DRAG_LOCATION:
                {
//                    //@todo add scroll behaviour to drag and drop
//                    HorizontalScrollView horizontalScrollView = (HorizontalScrollView) pipeView.getParent();
//                    if (horizontalScrollView != null)
//                    {
//                        ScrollView scrollView = (ScrollView) horizontalScrollView.getParent();
//                        if (scrollView != null)
//                        {
//                            //way one
//                            int y = Math.round(event.getY());
//                            int translatedY = y - scrollView.getScrollY();
//                            int threshold = 50;
//                            // make a scrolling up due the y has passed the threshold
//                            if (translatedY < threshold) {
//                                // make a scroll up by 30 px
//                                scrollView.smoothScrollBy(0, -30);
//                            }
//                            // make a autoscrolling down due y has passed the 500 px border
//                            if (translatedY + threshold > 500) {
//                                // make a scroll down by 30 px
//                                scrollView.smoothScrollBy(0, 30);
//                            }
//                            //way two
//                            int topOfDropZone = pipeView.getTop();
//                            int bottomOfDropZone = pipeView.getBottom();
//                            int scrollY = scrollView.getScrollY();
//                            int scrollViewHeight = scrollView.getMeasuredHeight();
//                            Log.d("location: Scroll Y: " + scrollY + " Scroll Y+Height: " + (scrollY + scrollViewHeight));
//                            Log.d(" top: " + topOfDropZone + " bottom: " + bottomOfDropZone);
//                            if (bottomOfDropZone > (scrollY + scrollViewHeight - 100))
//                            {
//                                scrollView.smoothScrollBy(0, 30);
//                            }
//                            if (topOfDropZone < (scrollY + 100))
//                            {
//                                scrollView.smoothScrollBy(0, -30);
//                            }
//                        }
//                    }
                    break;
                }
                default:
                    break;
            }
            return true;
        }
        return false;
    }
 
源代码13 项目: Passbook   文件: EditFragment.java
@Override
public boolean onDrag(View v, DragEvent event) {
    final int action = event.getAction();
    switch(action) {
        case DragEvent.ACTION_DRAG_STARTED:
            return true;

        case DragEvent.ACTION_DRAG_ENTERED:
            if(v==mDeleteView) {
                mDeleteView.setColorFilter(C.ThemedColors[C.colorAccent]);
                mDeleteView.setScaleX(1.2f);
                mDeleteView.setScaleY(1.2f);
            }
            else {
                mDeleteView.setColorFilter(C.ThemedColors[C.colorTextNormal]);
                mDeleteView.setScaleX(1.0f);
                mDeleteView.setScaleY(1.0f);
                EntryHolder eh = (EntryHolder) v.getTag();
                if (mDragged.mEntryLayout != eh.mEntryLayout) {
                    int index = mEntries.indexOf(eh);
                    mDeleteView.animate().setDuration(300).y(v.getY() +
                            (mItemHeight - mDeleteView.getMeasuredHeight())/2);
                    eh = mEntries.get(mIndex);
                    mEntries.remove(mIndex);
                    mEntries.add(index, eh);
                    mContainer.removeViewAt(mIndex);
                    mContainer.addView(eh.mEntryLayout,index);
                    mIndex = index;
                }
            }
            return true;

        case DragEvent.ACTION_DRAG_ENDED:
            mDeleteView.setVisibility(View.INVISIBLE);
            if(v!=mDeleteView) {
                mDragged.mEntryContainer.setVisibility(View.VISIBLE);
                mDragged.mEntryLayout.setAlpha(1.0f);
            }
            return true;

        case DragEvent.ACTION_DRAG_LOCATION:
            int yPosition = (int)v.getY();
            int scrollY = mScroll.getScrollY();
            if(yPosition < scrollY) {
                mScroll.smoothScrollBy(0, -mItemHeight);
            }
            if(yPosition - scrollY > mAdjustScrollY) {
                mScroll.smoothScrollBy(0, mItemHeight);
            }
            return true;

        case DragEvent.ACTION_DROP:
            if(v==mDeleteView) {
                delete(mDragged);
            }
            return true;

    }
    return false;
}
 
源代码14 项目: codeexamples-android   文件: DraggableDot.java
/**
 * Drag and drop
 */
@Override
public boolean onDragEvent(DragEvent event) {
    boolean result = false;
    switch (event.getAction()) {
    case DragEvent.ACTION_DRAG_STARTED: {
        // claim to accept any dragged content
        Log.i(TAG, "Drag started, event=" + event);
        // cache whether we accept the drag to return for LOCATION events
        mDragInProgress = true;
        mAcceptsDrag = result = true;
        // Redraw in the new visual state if we are a potential drop target
        if (mAcceptsDrag) {
            invalidate();
        }
    } break;

    case DragEvent.ACTION_DRAG_ENDED: {
        Log.i(TAG, "Drag ended.");
        if (mAcceptsDrag) {
            invalidate();
        }
        mDragInProgress = false;
        mHovering = false;
    } break;

    case DragEvent.ACTION_DRAG_LOCATION: {
        // we returned true to DRAG_STARTED, so return true here
        Log.i(TAG, "... seeing drag locations ...");
        result = mAcceptsDrag;
    } break;

    case DragEvent.ACTION_DROP: {
        Log.i(TAG, "Got a drop! dot=" + this + " event=" + event);
        if (mAnrType == ANR_DROP) {
            sleepSixSeconds();
        }
        processDrop(event);
        result = true;
    } break;

    case DragEvent.ACTION_DRAG_ENTERED: {
        Log.i(TAG, "Entered dot @ " + this);
        mHovering = true;
        invalidate();
    } break;

    case DragEvent.ACTION_DRAG_EXITED: {
        Log.i(TAG, "Exited dot @ " + this);
        mHovering = false;
        invalidate();
    } break;

    default:
        Log.i(TAG, "other drag event: " + event);
        result = mAcceptsDrag;
        break;
    }

    return result;
}