类android.view.DragEvent源码实例Demo

下面列出了怎么用android.view.DragEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: android_9.0.0_r45   文件: DragState.java
private void sendDragStartedLocked(WindowState newWin, float touchX, float touchY,
        ClipDescription desc) {
    if (mDragInProgress && isValidDropTarget(newWin)) {
        DragEvent event = obtainDragEvent(newWin, DragEvent.ACTION_DRAG_STARTED,
                touchX, touchY, null, desc, null, null, false);
        try {
            newWin.mClient.dispatchDragEvent(event);
            // track each window that we've notified that the drag is starting
            mNotifiedWindows.add(newWin);
        } catch (RemoteException e) {
            Slog.w(TAG_WM, "Unable to drag-start window " + newWin);
        } finally {
            // if the callee was local, the dispatch has already recycled the event
            if (Process.myPid() != newWin.mSession.mPid) {
                event.recycle();
            }
        }
    }
}
 
源代码2 项目: PlusDemo   文件: DragListenerGridView.java
@Override
public boolean onDrag(View v, DragEvent event) {
    switch (event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            if (event.getLocalState() == v) {
                v.setVisibility(INVISIBLE);
            }
            break;
        case DragEvent.ACTION_DRAG_ENTERED:
            System.out.println("draggg");
            if (event.getLocalState() != v) {
                sort(v);
            }
            break;
        case DragEvent.ACTION_DRAG_EXITED:
            break;
        case DragEvent.ACTION_DRAG_ENDED:
            v.setVisibility(VISIBLE);
            break;
    }
    return true;
}
 
源代码3 项目: LaunchEnr   文件: PinItemDragListener.java
@Override
public boolean onDrag(View view, DragEvent event) {
    if (mLauncher == null || mDragController == null) {
        postCleanup();
        return false;
    }
    if (event.getAction() == DragEvent.ACTION_DRAG_STARTED) {
        if (onDragStart(event)) {
            return true;
        } else {
            postCleanup();
            return false;
        }
    }
    return mDragController.onDragEvent(mDragStartTime, event);
}
 
源代码4 项目: LaunchTime   文件: QuickRow.java
public QuickRow(final View.OnDragListener dragListener, MainActivity mainActivity) {

        mMainActivity = mainActivity;
        mStyle = GlobState.getStyle(mMainActivity);

        mQuickRow = mMainActivity.findViewById(R.id.layout_quickrow);

        mQuickRowScroller = mMainActivity.findViewById(R.id.layout_quickrow_scroll);

        mQuickRow.setOnDragListener(dragListener);
        mQuickRowScroller.setOnDragListener(new View.OnDragListener() {
            @Override
            public boolean onDrag(View view, DragEvent dragEvent) {
                return dragListener.onDrag(mQuickRow, dragEvent);
            }
        });
    }
 
源代码5 项目: talk-android   文件: RecipientEditTextView.java
/**
 * Handles drag event.
 */
@Override
public boolean onDragEvent(DragEvent event) {
    switch (event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            // Only handle plain text drag and drop.
            return event.getClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN);
        case DragEvent.ACTION_DRAG_ENTERED:
            requestFocus();
            return true;
        case DragEvent.ACTION_DROP:
            handlePasteClip(event.getClipData());
            return true;
    }
    return false;
}
 
源代码6 项目: talk-android   文件: TextChipsEditView.java
/**
 * Handles drag event.
 */
@Override
public boolean onDragEvent(DragEvent event) {
    switch (event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            // Only handle plain text drag and drop.
            return event.getClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN);
        case DragEvent.ACTION_DRAG_ENTERED:
            requestFocus();
            return true;
        case DragEvent.ACTION_DROP:
            handlePasteClip(event.getClipData());
            return true;
    }
    return false;
}
 
源代码7 项目: 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;
}
 
源代码8 项目: 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;
}
 
源代码9 项目: AndroidChromium   文件: CompositorViewHolder.java
@Override
public boolean dispatchDragEvent(DragEvent e) {
    ContentViewCore contentViewCore = mTabVisible.getContentViewCore();
    if (contentViewCore == null) return false;

    if (mLayoutManager != null) mLayoutManager.getViewportPixel(mCacheViewport);
    contentViewCore.setCurrentTouchEventOffsets(-mCacheViewport.left, -mCacheViewport.top);
    boolean ret = super.dispatchDragEvent(e);

    int action = e.getAction();
    if (action == DragEvent.ACTION_DRAG_EXITED || action == DragEvent.ACTION_DRAG_ENDED
            || action == DragEvent.ACTION_DROP) {
        contentViewCore.setCurrentTouchEventOffsets(0.f, 0.f);
    }
    return ret;
}
 
源代码10 项目: 365browser   文件: CompositorViewHolder.java
@Override
public boolean dispatchDragEvent(DragEvent e) {
    ContentViewCore contentViewCore = mTabVisible.getContentViewCore();
    if (contentViewCore == null) return false;

    if (mLayoutManager != null) mLayoutManager.getViewportPixel(mCacheViewport);
    contentViewCore.setCurrentTouchEventOffsets(-mCacheViewport.left, -mCacheViewport.top);
    boolean ret = super.dispatchDragEvent(e);

    int action = e.getAction();
    if (action == DragEvent.ACTION_DRAG_EXITED || action == DragEvent.ACTION_DRAG_ENDED
            || action == DragEvent.ACTION_DROP) {
        contentViewCore.setCurrentTouchEventOffsets(0.f, 0.f);
    }
    return ret;
}
 
源代码11 项目: DraggedViewPager   文件: DragUtils.java
/**
 * 获取拖拽触发的执行事件类型
 *
 * @param draggedViewPager 最外层 {@link com.bigfat.draggedviewpager.view.MDA_DraggedViewPager}
 * @param currentPageIndex 当前页索引
 * @param pageIndex        响应拖拽事件item所在页索引
 * @param view             响应拖拽事件的item
 * @param event            拖拽事件
 * @return 拖拽事件类型
 */
public static DragEventType getDragEventType(MDA_DraggedViewPager draggedViewPager, int currentPageIndex, int pageIndex,
    View view, DragEvent event) {
    if (currentPageIndex > 0//有上一页
        && (draggedViewPager.getPageDragSetting() == null || draggedViewPager.getPageDragSetting()
        .canBeSwiped(currentPageIndex - 1))//上一页可被交换
        //触摸至上一页//或至触摸至当前页左边界,则切换到上一页
        && (pageIndex < currentPageIndex || (pageIndex == currentPageIndex && event.getX() < view.getWidth() / 8))) {
        return DragEventType.SCROLL_PREVIOUS;
    } else if (currentPageIndex < (draggedViewPager.getContainer().getChildCount() - 1)//在有下一页的前提下
        && (draggedViewPager.getPageDragSetting() == null || draggedViewPager.getPageDragSetting()
        .canBeSwiped(currentPageIndex + 1))//下一页可被交换
        //触摸至下一页//或至触摸至当前页右边界,则切换到下一页
        && (pageIndex > currentPageIndex || (pageIndex == currentPageIndex && event.getX() > view.getWidth() / 8 * 7))) {
        return DragEventType.SCROLL_NEXT;
    }
    return DragEventType.DEFAULT;
}
 
@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;
    }
}
 
源代码13 项目: DistroHopper   文件: LauncherDragListener.java
@Override
public boolean onDrag (View view, DragEvent event)
{
	try
	{
		switch (event.getAction ())
		{
			case DragEvent.ACTION_DRAG_ENTERED:
				this.appManager.startedDraggingPinnedApp ();
				break;
			case DragEvent.ACTION_DROP:
			case DragEvent.ACTION_DRAG_EXITED:
				this.appManager.stoppedDraggingPinnedApp ();
				break;
		}
	}
	catch (Exception ex)
	{
		ExceptionHandler exh = new ExceptionHandler (ex);
		exh.show (this.appManager.getContext ());
	}

	return true;
}
 
源代码14 项目: codeexamples-android   文件: DragActivity.java
@Override
public boolean onDrag(View v, DragEvent event) {
	switch (event.getAction()) {
	case DragEvent.ACTION_DRAG_STARTED:
		// Do nothing
		break;
	case DragEvent.ACTION_DRAG_ENTERED:
		v.setBackground(enterShape);
		break;
	case DragEvent.ACTION_DRAG_EXITED:
		v.setBackground(normalShape);
		break;
	case DragEvent.ACTION_DROP:
		// view dropped, reassign the view to the new ViewGroup
		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:
		v.setBackground(normalShape);
	default:
		break;
	}
	return true;
}
 
源代码15 项目: user-interface-samples   文件: ImageDragListener.java
@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;
}
 
源代码16 项目: user-interface-samples   文件: ImageDragListener.java
private boolean processDrop(View view, DragEvent event) {
    ClipData clipData = event.getClipData();
    if (clipData == null || clipData.getItemCount() == 0) {
        return false;
    }
    ClipData.Item item = clipData.getItemAt(0);
    if (item == null) {
        return false;
    }
    Uri uri = item.getUri();
    if (uri == null) {
        return false;
    }
    return setImageUri(view, event, uri);
}
 
源代码17 项目: user-interface-samples   文件: ImageDragListener.java
protected boolean setImageUri(View view, DragEvent event, Uri uri) {
    if (!(view instanceof ImageView)) {
        return false;
    }
    ((ImageView) view).setImageURI(uri);
    return true;
}
 
@Override
public boolean onDrag(View view, DragEvent event) {
    // DragTarget is peeking into the MIME types of the dragged event in order to ignore
    // non-image drags completely.
    // DragSource does not do that but rejects non-image content once a drop has happened.
    ClipDescription clipDescription = event.getClipDescription();
    if (clipDescription != null && !clipDescription.hasMimeType("image/*")) {
        return false;
    }
    // Callback received when image is being dragged.
    return super.onDrag(view, event);
}
 
源代码19 项目: codeexamples-android   文件: DragActivity.java
@Override
public boolean onDrag(View v, DragEvent event) {
	int action = event.getAction();
	switch (event.getAction()) {
	case DragEvent.ACTION_DRAG_STARTED:
		// Do nothing
		break;
	case DragEvent.ACTION_DRAG_ENTERED:
		v.setBackgroundDrawable(enterShape);
		break;
	case DragEvent.ACTION_DRAG_EXITED:
		v.setBackgroundDrawable(normalShape);
		break;
	case DragEvent.ACTION_DROP:
		// Dropped, reassign View to ViewGroup
		View view = (View) event.getLocalState();
		ViewGroup owner = (ViewGroup) view.getParent();
		// TODO 1 removeView from owner
		// TODO 2 add to v which is a LinearLayout
		// TODO 3 set view to View.Visible
		
		break;
	case DragEvent.ACTION_DRAG_ENDED:
		v.setBackgroundDrawable(normalShape);
	default:
		break;
	}
	return true;
}
 
源代码20 项目: user-interface-samples   文件: ImageDragListener.java
@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;
}
 
源代码21 项目: user-interface-samples   文件: ImageDragListener.java
private boolean processDrop(View view, DragEvent event) {
    ClipData clipData = event.getClipData();
    if (clipData == null || clipData.getItemCount() == 0) {
        return false;
    }
    ClipData.Item item = clipData.getItemAt(0);
    if (item == null) {
        return false;
    }
    Uri uri = item.getUri();
    if (uri == null) {
        return false;
    }
    return setImageUri(view, event, uri);
}
 
源代码22 项目: user-interface-samples   文件: ImageDragListener.java
protected boolean setImageUri(View view, DragEvent event, Uri uri) {
    if (!(view instanceof ImageView)) {
        return false;
    }
    ((ImageView) view).setImageURI(uri);
    return true;
}
 
源代码23 项目: RemoteControlView   文件: RemoteControlView.java
/**
 * 计算控件位置
 */
private void compute(int type, Rect rect, DragEvent event){

    int size = mPhoneContentWidth / WIDTH_COUNT - dp2px(10);
    int x = (int) event.getX();
    int y = (int) event.getY();

    if (type == ONE_BY_ONE_PIC || type == ONE_BY_ONE_TEXT){
        // 1 * 1 方格
        rect.left = x - size / 2;
        rect.top = y - size / 2;
        rect.right = x + size / 2;
        rect.bottom = y + size / 2;
    }else if (type == THREE_BY_THREE_PIC){
        // 3 * 3 方格
        rect.left = x - size * 3 / 2;
        rect.top = y - size * 3 / 2;
        rect.right = x + size * 3 / 2;
        rect.bottom = y + size * 3 / 2;
    }else if (type == ONE_BY_TWO_PIC){
        // 1 * 2 方格
        rect.left = x - size / 2;
        rect.top = y - size;
        rect.right = x + size / 2;
        rect.bottom = y + size;
    }
}
 
源代码24 项目: codeexamples-android   文件: ContentFragment.java
boolean processDragStarted(DragEvent event) {
    // Determine whether to continue processing drag and drop based on the
    // plain text mime type.
    ClipDescription clipDesc = event.getClipDescription();
    if (clipDesc != null) {
        return clipDesc.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN);
    }
    return false;
}
 
源代码25 项目: Android-Lib-Pen   文件: MultiDragListener.java
@Override
public boolean onDrag(final View view, final DragEvent event) {
    final View.OnDragListener listener = this.listeners.get(event.getLocalState());

    if (listener == null) {
        return false;
    }

    return listener.onDrag(view, event);
}
 
源代码26 项目: PlusDemo   文件: DragToCollectLayout.java
@Override
public boolean onDrag(View v, DragEvent event) {
    switch (event.getAction()) {
        case DragEvent.ACTION_DROP:
            if (v instanceof LinearLayout) {
                LinearLayout layout = (LinearLayout) v;
                TextView textView = new TextView(getContext());
                textView.setTextSize(16);
                textView.setText(event.getClipData().getItemAt(0).getText());
                layout.addView(textView);
            }
            break;
    }
    return true;
}
 
源代码27 项目: codeexamples-android   文件: DraggableDot.java
private void processDrop(DragEvent event) {
    final ClipData data = event.getClipData();
    final int N = data.getItemCount();
    for (int i = 0; i < N; i++) {
        ClipData.Item item = data.getItemAt(i);
        Log.i(TAG, "Dropped item " + i + " : " + item);
        if (mReportView != null) {
            String text = item.coerceToText(getContext()).toString();
            if (event.getLocalState() == (Object) this) {
                text += " : Dropped on self!";
            }
            mReportView.setText(text);
        }
    }
}
 
源代码28 项目: 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;
    }
}
 
源代码29 项目: androidtestdebug   文件: ContentFragment.java
boolean processDrop(DragEvent event, ImageView imageView) {
    // Attempt to parse clip data with expected format: category||entry_id.
    // Ignore event if data does not conform to this format.
    ClipData data = event.getClipData();
    if (data != null) {
        if (data.getItemCount() > 0) {
            Item item = data.getItemAt(0);
            String textData = (String) item.getText();
            if (textData != null) {
                StringTokenizer tokenizer = new StringTokenizer(textData, "||");
                if (tokenizer.countTokens() != 2) {
                    return false;
                }
                int category = -1;
                int entryId = -1;
                try {
                    category = Integer.parseInt(tokenizer.nextToken());
                    entryId = Integer.parseInt(tokenizer.nextToken());
                } catch (NumberFormatException exception) {
                    return false;
                }
                updateContentAndRecycleBitmap(category, entryId);
                // Update list fragment with selected entry.
                TitlesFragment titlesFrag = (TitlesFragment)
                        getFragmentManager().findFragmentById(R.id.frag_title);
                titlesFrag.selectPosition(entryId);
                return true;
            }
        }
    }
    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;
}
 
 类所在包
 同包方法