public DragEventAssert hasX(float x) { isNotNull(); float actualX = actual.getX(); assertThat(actualX) // .overridingErrorMessage("Expected X <%s> but was <%s>", x, actualX) // .isEqualTo(x); return this; }
ImageView img = (ImageView)findViewById(R.id.top_mask); img.setOnDragListener(new View.OnDragListener() { @Override public boolean onDrag(View v, DragEvent event) { RelativeLayout.LayoutParams params = (android.widget.RelativeLayout.LayoutParams) v.getLayoutParams(); params.topMargin = (int) event.getX(); params.bottomMargin = (int) event.getY(); v.setLayoutParams(params); return false; } });
/** * @param item the view that received the drag event * @param event the event from {@link android.view.View.OnDragListener#onDrag(View, DragEvent)} * @return the coordinates of the touch on x and y axis relative to the screen */ public static Point getTouchPositionFromDragEvent(View item, DragEvent event) { Rect rItem = new Rect(); item.getGlobalVisibleRect(rItem); return new Point(rItem.left + Math.round(event.getX()), rItem.top + Math.round(event.getY())); }
public boolean isOnChild(View v, DragEvent event){ int count = getChildCount(); int x = (int) event.getX(); int y = (int) event.getY(); for(int i = 0; i < count; i++){ View view = getChildAt(i); int left = view.getLeft(); int right = view.getRight(); int top = view.getTop(); int bottom = view.getBottom(); if(left < x && x < right && bottom > y && y > top){ view.dispatchDragEvent(event); return true; } } return false; }
// inside onCreate(), needs "implements View.OnDragListener" card.setOnDragListener(this); public boolean onDrag(View v, DragEvent event) { // Defines a variable to store the action type for the incoming event final int action = event.getAction(); // Handles each of the expected events switch(action) { case DragEvent.ACTION_DRAG_LOCATION: final int x = event.getX(); final int y = event.getY(); Log.d("prefs", "X=" + String.valueOf(x) + " / Y=" + String.valueOf(y)); break; } return true; }
findViewById(R.id.relativeLayout).setOnDragListener(new View.OnDragListener() { @Override public boolean onDrag(View v, DragEvent event) { if (event.getAction() == DragEvent.ACTION_DRAG_DROP){ int x_cord = (int) event.getX(); int y_cord = (int) event.getY(); layoutParams.leftMargin = x_cord; layoutParams.topMargin = y_cord; editText.setLayoutParams(layoutParams); } return true; } });
root = findViewById(android.R.id.content); // get reference to root // add a Draglistener to your root view root.setOnDragListener(new OnDragListener() { @Override public boolean onDrag(View v, DragEvent event) { int action = event.getAction(); if(action == DragEvent.ACTION_DROP) { // record position of finger lift dropX = event.getX(); dropY = event.getY(); } return false; } });
public DragEventAssert hasX(float x) { isNotNull(); float actualX = actual.getX(); assertThat(actualX) // .overridingErrorMessage("Expected X <%s> but was <%s>", x, actualX) // .isEqualTo(x); return this; }
@Override public boolean onDragEvent(DragEvent event) { switch (event.getAction()) { case DragEvent.ACTION_DRAG_STARTED: return mEditor != null && mEditor.hasInsertionController(); case DragEvent.ACTION_DRAG_ENTERED: TextView.this.requestFocus(); return true; case DragEvent.ACTION_DRAG_LOCATION: final int offset = getOffsetForPosition(event.getX(), event.getY()); Selection.setSelection((Spannable)mText, offset); return true; case DragEvent.ACTION_DROP: if (mEditor != null) mEditor.onDrop(event); return true; case DragEvent.ACTION_DRAG_ENDED: case DragEvent.ACTION_DRAG_EXITED: default: return true; } }
@Override public boolean onDrag(View v, DragEvent event) { int action = event.getAction(); float xCoord; float yCoord; if(action == DragEvent.ACTION_DRAG_LOCATION) { xCoord = event.getX(); yCoord = event.getY(); } return event.getResult(); //returns true for valid drop or false for invalid drop }
@Override public boolean onDrag(View v, DragEvent event) { if (event.getAction() == DragEvent.ACTION_DRAG_LOCATION) { mDragDropController.handleDragHovered(v, (int) event.getX(), (int) event.getY()); } return true; } }
private class OnWebViewDragListener implements OnDragListener { public boolean onDrag(View v, DragEvent event) { switch (event.getAction()) { case DragEvent.ACTION_DROP: String dropText = event.getClipData().getItemAt(0).getText().toString(); mJavaScript._dropText(mWebView, dropText, event.getX(), event.getY()); return true; default: break; } return false; } }
/** * 计算控件位置 */ 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; } }
/** * 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(); }
@Override public boolean onDrag(View v, DragEvent event) { switch (event.getAction()) { case DragEvent.ACTION_DRAG_STARTED: //Log.i("onDrag", "ACTION_DRAG_STARTED"); break; case DragEvent.ACTION_DRAG_ENTERED: //Log.i("onDrag", "ACTION_DRAG_ENTERED"); break; case DragEvent.ACTION_DRAG_EXITED: //Log.i("onDrag", "ACTION_DRAG_EXITED"); break; case DragEvent.ACTION_DROP: //Log.i("onDrag", "ACTION_DROP"); int x_cord = (int) event.getX(); int y_cord = (int) event.getY(); View view = (View) event.getLocalState(); view.setX(x_cord-(view.getWidth()/2)); view.setY(y_cord-(view.getHeight()/2)); view.setVisibility(View.VISIBLE); break; case DragEvent.ACTION_DRAG_ENDED: //Log.i("onDrag", "ACTION_DRAG_ENDED"); default: break; } return true; } }
rootView.findViewById(R.id.dropArea).setOnDragListener(new OnDragListener() { @Override public boolean onDrag(View v, DragEvent event) { switch (event.getAction()) { case DragEvent.ACTION_DROP: View circleView = (View)event.getLocalState(); if(circleView != null) { circleView.setX(event.getX()); circleView.setY(event.getY()); circleView.setVisibility(View.VISIBLE); } return true; case DragEvent.ACTION_DRAG_ENDED: if (!event.getResult) findViewById(R.id.imgCircle).setVisibility(View.VISIBLE); return true; default: return false; } } }
private void hscrollOnDrag(View view, DragEvent event, HorizontalScrollView scrollView) { float tx = view.getLeft() + event.getX(); if (isAncestor(scrollView, view)) { int thresh = scrollView.getWidth() / 6; if (tx < scrollView.getScrollX() + thresh) { scrollView.smoothScrollBy(-10, 0); } else if (tx > scrollView.getScrollX() + scrollView.getWidth() - thresh) { scrollView.smoothScrollBy(10,0); } } }
@Override public boolean onDrag(View view, DragEvent event) { if (event.getAction() == DragEvent.ACTION_DRAG_STARTED) { if (event.getLocalState() instanceof TowerView) { if (event.getX() > 0 && event.getX() < getWidth() && event.getY() > 0 && event.getY() < getHeight()) { Vector2 pos = mViewport.screenToGame(new Vector2(event.getX(), event.getY())); mTowerInserter.setPosition(pos); } return true; } } if (event.getAction() == DragEvent.ACTION_DRAG_LOCATION) { Vector2 pos = mViewport.screenToGame(new Vector2(event.getX(), event.getY())); mTowerInserter.setPosition(pos); } if (event.getAction() == DragEvent.ACTION_DROP) { mTowerInserter.buyTower(); } if (event.getAction() == DragEvent.ACTION_DRAG_EXITED || event.getAction() == DragEvent.ACTION_DRAG_ENDED) { mTowerInserter.cancel(); } return false; }
@Override public boolean onDragEvent(DragEvent event) { final int action = event.getAction(); switch (action) { case DragEvent.ACTION_DRAG_ENTERED: // TODO: This is temporary solution and should be removed once accessibility for // drag and drop is supported by framework(b/26871588). sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT); setAppearanceHighlighted(); break; case DragEvent.ACTION_DRAG_EXITED: setAppearanceNormal(); break; case DragEvent.ACTION_DRAG_LOCATION: if (mDragDropController != null) { mDragDropController.handleDragHovered(this, (int) event.getX(), (int) event.getY()); } break; case DragEvent.ACTION_DROP: sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT); if (mDragDropController != null) { mDragDropController.handleDragFinished((int) event.getX(), (int) event.getY(), true); } setAppearanceNormal(); break; } return true; }