List of usage examples for android.view View onTouchEvent
public boolean onTouchEvent(MotionEvent event)
From source file:com.github.tbouron.shakedetector.example.MainActivity.java
@Override public boolean onTouch(View view, MotionEvent motionEvent) { int action = motionEvent.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: // Disallow Drawer to intercept touch events. view.getParent().requestDisallowInterceptTouchEvent(true); break;//from w w w .j a v a 2 s .co m case MotionEvent.ACTION_UP: // Allow Drawer to intercept touch events. view.getParent().requestDisallowInterceptTouchEvent(false); break; } // Handle seekbar touch events. view.onTouchEvent(motionEvent); return true; }
From source file:com.haarman.listviewanimations.itemmanipulation.SwipeDismissListViewTouchListener.java
@Override public boolean onTouch(View view, MotionEvent motionEvent) { if (mVirtualListCount == -1) { mVirtualListCount = mListView.getAdapter().getCount(); }/*from ww w. ja v a 2 s . co m*/ if (mViewWidth < 2) { mViewWidth = mListView.getWidth(); } switch (motionEvent.getActionMasked()) { case MotionEvent.ACTION_DOWN: mDisallowSwipe = false; view.onTouchEvent(motionEvent); return handleDownEvent(motionEvent); case MotionEvent.ACTION_MOVE: return handleMoveEvent(motionEvent); case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: mDisallowSwipe = false; mTouchChildTouched = false; return handleUpEvent(motionEvent); } return false; }
From source file:android.support.v7.widget.ForwardingListener.java
private void onLongPress() { clearCallbacks();//from www . ja va 2 s .co m final View src = mSrc; if (!src.isEnabled() || src.isLongClickable()) { // Ignore long-press if the view is disabled or has its own // handler. return; } if (!onForwardingStarted()) { return; } // Don't let the parent intercept our events. src.getParent().requestDisallowInterceptTouchEvent(true); // Make sure we cancel any ongoing source event stream. final long now = SystemClock.uptimeMillis(); final MotionEvent e = MotionEvent.obtain(now, now, MotionEvent.ACTION_CANCEL, 0, 0, 0); src.onTouchEvent(e); e.recycle(); mForwarding = true; }
From source file:com.gmail.walles.johan.batterylogger.BatteryPlotFragment.java
private View.OnTouchListener getOnTouchListener(final XYPlot plot) { final GestureDetector gestureDetector = getOneFingerGestureDetector(plot); final ScaleGestureDetector scaleGestureDetector = getTwoFingerGestureDetector(plot); return new View.OnTouchListener() { @Override/*from w ww. j a v a2 s . c om*/ public boolean onTouch(View view, MotionEvent motionEvent) { boolean returnMe; returnMe = scaleGestureDetector.onTouchEvent(motionEvent); returnMe |= gestureDetector.onTouchEvent(motionEvent); returnMe |= view.onTouchEvent(motionEvent); return returnMe; } }; }
From source file:com.github.shareme.gwsswwipetodismiss.library.SwipeDismissTouchListener.java
@Override public boolean onTouch(View view, MotionEvent motionEvent) { // offset because the view is translated during swipe motionEvent.offsetLocation(mTranslationX, 0); if (mViewWidth < 2) { mViewWidth = mView.getWidth();// w w w . j a v a2 s. co m } switch (MotionEventCompat.getActionMasked(motionEvent)) { case MotionEvent.ACTION_DOWN: { // TODO: ensure this is a finger, and set a flag mDownX = motionEvent.getRawX(); mDownY = motionEvent.getRawY(); mVelocityTracker = VelocityTracker.obtain(); mVelocityTracker.addMovement(motionEvent); view.onTouchEvent(motionEvent); return false; } case MotionEvent.ACTION_UP: { if (mVelocityTracker == null) { break; } float deltaX = motionEvent.getRawX() - mDownX; float deltaY = motionEvent.getRawY() - mDownY; mVelocityTracker.addMovement(motionEvent); mVelocityTracker.computeCurrentVelocity(1000); float velocityX = Math.abs(mVelocityTracker.getXVelocity()); float velocityY = Math.abs(mVelocityTracker.getYVelocity()); boolean dismiss = false; boolean dismissRight = false; if (Math.abs(deltaY) < Math.abs(deltaX)) { if (Math.abs(deltaX) > Math.round(mViewWidth * SWIPE_SENSITIVITY)) { dismiss = true; dismissRight = deltaX > 0; } else if (Math.abs(deltaX) > mSlop && mMinFlingVelocity <= velocityX && velocityX <= mMaxFlingVelocity && velocityY < velocityX) { dismiss = true; dismissRight = mVelocityTracker.getXVelocity() > 0; } } if (dismiss) { // dismiss mView.animate().translationX(dismissRight ? mViewWidth : -mViewWidth).alpha(0) .setDuration(mAnimationTime).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { performDismiss(); } }); } else { // cancel mView.animate().translationX(0).alpha(1).setDuration(mAnimationTime).setListener(null); } mVelocityTracker = null; mTranslationX = 0; mDownX = 0; mDownY = 0; mSwiping = false; break; } case MotionEvent.ACTION_MOVE: { if (mVelocityTracker == null) { break; } mVelocityTracker.addMovement(motionEvent); float deltaX = motionEvent.getRawX() - mDownX; if (Math.abs(deltaX) > mSlop) { mSwiping = true; mView.getParent().requestDisallowInterceptTouchEvent(true); // Cancel listview's touch MotionEvent cancelEvent = MotionEvent.obtain(motionEvent); cancelEvent.setAction(MotionEvent.ACTION_CANCEL | (MotionEventCompat .getActionIndex(motionEvent) << MotionEventCompat.ACTION_POINTER_INDEX_SHIFT)); mView.onTouchEvent(cancelEvent); } if (mSwiping) { mTranslationX = deltaX; setTranslationX(mView, deltaX); // TODO: use an ease-out interpolator or such setAlpha(mView, Math.max(0f, Math.min(1f, 1f - Math.abs(deltaX) / SWIPE_SENSITIVITY * mViewWidth))); return true; } break; } } return false; }
From source file:com.nps.micro.view.TestsSectionFragment.java
private void createSequenceChooser(View rootView) { final String[] sequencesArray = getResources().getStringArray(R.array.sequence_array); selectedSequences.clear();// ww w . j a v a2 s . c o m selectedSequences.addAll(model.getSequencesAsStrings()); runButton.setEnabled(model.getSequences().length > 0); selectedSequencesListView = (DynamicListView) rootView.findViewById(R.id.selectedSequencesListView); selectedSequencesListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); selectedSequencesAdapter = new StableArrayAdapter(getActivity(), R.layout.text_view, selectedSequences); selectedSequencesListView.setListItems(selectedSequences); selectedSequencesListView.setAdapter(selectedSequencesAdapter); setListViewHeightBasedOnChildren(selectedSequencesListView); selectedSequencesListView.setOnTouchListener(new ListView.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: v.getParent().requestDisallowInterceptTouchEvent(true); break; case MotionEvent.ACTION_UP: v.getParent().requestDisallowInterceptTouchEvent(false); break; } v.onTouchEvent(event); return true; } }); selectSequenceButton = (Button) rootView.findViewById(R.id.selectSequenceButton); selectSequenceButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { boolean[] checkedItems = new boolean[sequencesArray.length]; for (int i = 0; i < sequencesArray.length; i++) { if (selectedSequences.contains(sequencesArray[i])) { checkedItems[i] = true; } else { checkedItems[i] = false; } } new AlertDialog.Builder(getActivity()).setTitle(R.string.arhitecture) .setMultiChoiceItems(sequencesArray, checkedItems, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { String selectedArchitecture = sequencesArray[which]; if (isChecked) { selectedSequences.add(selectedArchitecture); } else if (selectedSequences.contains(selectedArchitecture)) { selectedSequences.remove(selectedArchitecture); } } }) .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { runButton.setEnabled(!selectedSequences.isEmpty()); model.setSequences(selectedSequences); selectedSequencesAdapter = new StableArrayAdapter(getActivity(), R.layout.text_view, selectedSequences); selectedSequencesListView.setAdapter(selectedSequencesAdapter); setListViewHeightBasedOnChildren(selectedSequencesListView); } }).create().show(); } }); }
From source file:com.nps.micro.view.TestsSectionFragment.java
private void createDeviceChooser(View rootView, final Button runButton) { availableDevicesListView = (ListView) rootView.findViewById(R.id.availableDevicesListView); availableDevicesAdapter = new ArrayAdapter<String>(getActivity(), R.layout.text_view, devicesList); availableDevicesListView.setAdapter(availableDevicesAdapter); availableDevicesListView.setTextFilterEnabled(true); availableDevicesListView.setOnItemClickListener(new OnItemClickListener() { @Override//from ww w . j a v a 2 s. c o m public void onItemClick(AdapterView<?> parent, final View view, int position, long id) { String item = (String) parent.getItemAtPosition(position); selectedDevices.add(ensureUniqueItem(item)); selectedDevicesAdapter = new StableArrayAdapter(getActivity(), R.layout.text_view, selectedDevices); selectedDevicesListView.setAdapter(selectedDevicesAdapter); setListViewHeightBasedOnChildren(selectedDevicesListView); updateModelSelectedDevices(); } private String ensureUniqueItem(String item) { if (selectedDevices.contains(item)) { return ensureUniqueItem(item + "'"); } else { return item; } } }); availableDevicesListView.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, final View view, int position, long id) { view.setBackgroundColor(Color.CYAN); final String item = (String) parent.getItemAtPosition(position); final String msg = getResources().getString(R.string.ping_device_info); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.ping_device_title).setMessage(String.format(msg, item)) .setPositiveButton(R.string.ping, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { view.setBackgroundColor(Color.BLACK); if (listener != null) { listener.pingDevice(item); } dialog.dismiss(); } }).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { view.setBackgroundColor(Color.BLACK); dialog.dismiss(); } }); builder.create().show(); return true; } }); setListViewHeightBasedOnChildren(availableDevicesListView); selectedDevicesListView = (DynamicListView) rootView.findViewById(R.id.selectedDevicesListView); selectedDevicesListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); selectedDevicesAdapter = new StableArrayAdapter(getActivity(), R.layout.text_view, selectedDevices); selectedDevicesListView.setListItems(selectedDevices); selectedDevicesListView.setAdapter(selectedDevicesAdapter); selectedDevicesListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, final View view, int position, long id) { final String item = (String) parent.getItemAtPosition(position); selectedDevices.remove(item); selectedDevicesAdapter = new StableArrayAdapter(getActivity(), R.layout.text_view, selectedDevices); selectedDevicesListView.setAdapter(selectedDevicesAdapter); setListViewHeightBasedOnChildren(selectedDevicesListView); updateModelSelectedDevices(); } }); selectedDevicesListView.setOnTouchListener(new ListView.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: v.getParent().requestDisallowInterceptTouchEvent(true); break; case MotionEvent.ACTION_UP: v.getParent().requestDisallowInterceptTouchEvent(false); break; } v.onTouchEvent(event); return true; } }); setListViewHeightBasedOnChildren(selectedDevicesListView); }
From source file:com.daycle.daycleapp.custom.swipelistview.itemmanipulation.swipedismiss.SwipeTouchListener.java
private boolean handleDownEvent(@Nullable final View view, @NonNull final MotionEvent motionEvent) { if (!mSwipeEnabled) { return false; }//from www . ja v a2 s.c o m // ? Row View downView = findDownView(motionEvent); if (downView == null) { return false; } int downPosition = AdapterViewUtil.getPositionForView(mListViewWrapper, downView); mCanDismissCurrent = isDismissable(downPosition); /* Check if we are processing the item at this position */ if (mCurrentPosition == downPosition || downPosition >= mVirtualListCount) { return false; } if (view != null) { view.onTouchEvent(motionEvent); } disableHorizontalScrollContainerIfNecessary(motionEvent, downView); mDownX = motionEvent.getX(); mDownY = motionEvent.getY(); mCurrentView = downView; // ? ? ? ( ? ?) mSwipingView = getSwipeView(downView); // ? ? !! mLeftSwipingView = getLeftSwipeView(downView); // ? ? !! mRightSwipingView = getRightSwipeView(downView); // ? ? !! mCurrentPosition = downPosition; mVelocityTracker = VelocityTracker.obtain(); mVelocityTracker.addMovement(motionEvent); return true; }
From source file:com.dirkgassen.wator.ui.activity.MainActivity.java
/** * Initializes this activity/* w w w .ja v a2 s . c o m*/ * @param savedInstanceState if this parameter is not {@code null} the activity state is restored to the information * in this Bundle */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_layout); Toolbar myToolbar = (Toolbar) findViewById(R.id.main_toolbar); setSupportActionBar(myToolbar); // More info: http://codetheory.in/difference-between-setdisplayhomeasupenabled-sethomebuttonenabled-and-setdisplayshowhomeenabled/ getSupportActionBar().setDisplayHomeAsUpEnabled(true); newWorldView = findViewById(R.id.new_world_fragment_container); fpsOkColor = ContextCompat.getColor(this, R.color.fps_ok_color); fpsWarningColor = ContextCompat.getColor(this, R.color.fps_warning_color); desiredFpsSlider = (RangeSlider) findViewById(R.id.desired_fps); threadsSlider = (RangeSlider) findViewById(R.id.threads); desiredFpsSlider.setOnTouchListener(new View.OnTouchListener() { @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: v.getParent().requestDisallowInterceptTouchEvent(true); break; case MotionEvent.ACTION_UP: v.getParent().requestDisallowInterceptTouchEvent(false); break; } v.onTouchEvent(event); return true; } }); desiredFpsSlider.setOnValueChangeListener(new RangeSlider.OnValueChangeListener() { @Override public void onValueChange(RangeSlider slider, int oldVal, int newVal, boolean fromUser) { synchronized (MainActivity.this) { if (newVal == 0) { if (currentDrawFps != null) { currentDrawFps.setVisibility(View.INVISIBLE); } } else { if (currentDrawFps != null) { currentDrawFps.setVisibility(View.VISIBLE); } } if (fromUser) { if (simulatorRunnable.setTargetFps(newVal)) { startSimulatorThread(); } } } } }); threadsSlider.setOnTouchListener(new View.OnTouchListener() { @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: v.getParent().requestDisallowInterceptTouchEvent(true); break; case MotionEvent.ACTION_UP: v.getParent().requestDisallowInterceptTouchEvent(false); break; } v.onTouchEvent(event); return true; } }); threadsSlider.setOnValueChangeListener(new RangeSlider.OnValueChangeListener() { @Override public void onValueChange(RangeSlider slider, int oldVal, int newVal, boolean fromUser) { simulatorRunnable.setThreadCount(newVal); } }); handler = new Handler(); updateFpsRunnable = new Runnable() { @Override public void run() { synchronized (MainActivity.this) { if (currentSimFps != null) { if (simulatorRunnable.getTargetFps() == 0) { currentSimFps.setText(getString(R.string.paused)); currentSimFps.setTextColor(fpsOkColor); } else { int fps = (int) simulatorRunnable.getAvgFps(); currentSimFps.setText(getString(R.string.current_simulation_fps, fps)); int newTextColor = fps < simulatorRunnable.getTargetFps() ? fpsWarningColor : fpsOkColor; currentSimFps.setTextColor(newTextColor); } } if (currentDrawFps != null) { float fps = drawingAverageTime.getAverage(); if (fps != 0f) { fps = 1000 / fps; } currentDrawFps.setText(getString(R.string.current_drawing_fps, (int) fps)); int newTextColor = fps < simulatorRunnable.getTargetFps() ? fpsWarningColor : fpsOkColor; currentDrawFps.setTextColor(newTextColor); } } } }; if (savedInstanceState == null) { simulator = new Simulator(new WorldParameters()); } else { WorldParameters parameters = new WorldParameters() .setWidth(savedInstanceState.getShort(WorldKeys.WORLD_WIDTH_KEY)) .setHeight(savedInstanceState.getShort(WorldKeys.WORLD_HEIGHT_KEY)) .setFishBreedTime(savedInstanceState.getShort(WorldKeys.FISH_BREED_TIME_KEY)) .setSharkBreedTime(savedInstanceState.getShort(WorldKeys.SHARK_BREED_TIME_KEY)) .setSharkStarveTime(savedInstanceState.getShort(WorldKeys.SHARK_STARVE_TIME_KEY)) .setInitialFishCount(0).setInitialSharkCount(0); simulator = new Simulator(parameters); short[] fishAge = savedInstanceState.getShortArray(WorldKeys.FISH_AGE_KEY); if (fishAge != null) { short[] fishPosX = savedInstanceState.getShortArray(WorldKeys.FISH_POSITIONS_X_KEY); if (fishPosX != null) { short[] fishPosY = savedInstanceState.getShortArray(WorldKeys.FISH_POSITIONS_Y_KEY); if (fishPosY != null) { for (int fishNo = 0; fishNo < fishAge.length; fishNo++) { simulator.setFish(fishPosX[fishNo], fishPosY[fishNo], fishAge[fishNo]); } } } } short[] sharkAge = savedInstanceState.getShortArray(WorldKeys.SHARK_AGE_KEY); if (sharkAge != null) { short[] sharkHunger = savedInstanceState.getShortArray(WorldKeys.SHARK_HUNGER_KEY); if (sharkHunger != null) { short[] sharkPosX = savedInstanceState.getShortArray(WorldKeys.SHARK_POSITIONS_X_KEY); if (sharkPosX != null) { short[] sharkPosY = savedInstanceState.getShortArray(WorldKeys.SHARK_POSITIONS_Y_KEY); if (sharkPosY != null) { for (int sharkNo = 0; sharkNo < sharkAge.length; sharkNo++) { simulator.setShark(sharkPosX[sharkNo], sharkPosY[sharkNo], sharkAge[sharkNo], sharkHunger[sharkNo]); } } } } } if (savedInstanceState.containsKey(WorldKeys.INITIAL_FISH_COUNT_KEY) || savedInstanceState.containsKey(WorldKeys.INITIAL_SHARK_COUNT_KEY)) { if (savedInstanceState.containsKey(WorldKeys.INITIAL_FISH_COUNT_KEY)) { parameters.setInitialFishCount(savedInstanceState.getInt(WorldKeys.INITIAL_FISH_COUNT_KEY)); } if (savedInstanceState.containsKey(WorldKeys.INITIAL_SHARK_COUNT_KEY)) { parameters.setInitialSharkCount(savedInstanceState.getInt(WorldKeys.INITIAL_SHARK_COUNT_KEY)); } previousWorldParameters = parameters; } } simulatorRunnable = new SimulatorRunnable(simulator); if (savedInstanceState != null && savedInstanceState.containsKey(WorldKeys.TARGET_FPS_KEY)) { simulatorRunnable.setTargetFps(savedInstanceState.getInt(WorldKeys.TARGET_FPS_KEY)); } simulatorRunnable.registerSimulatorRunnableObserver(this); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); final ListView drawerList = (ListView) findViewById(R.id.drawer_commands); drawerList.setAdapter(new DrawerListAdapter(getDrawerCommands())); drawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { DrawerCommandItem command = (DrawerCommandItem) drawerList.getItemAtPosition(position); if (command != null) { command.execute(); } } }); drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.open_drawer_description, R.string.close_drawer_description) { @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); supportInvalidateOptionsMenu(); synchronized (MainActivity.this) { currentSimFps = (TextView) findViewById(R.id.fps_simulator); currentDrawFps = (TextView) findViewById(R.id.fps_drawing); } } @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); supportInvalidateOptionsMenu(); synchronized (MainActivity.this) { currentSimFps = null; currentDrawFps = null; } } }; drawerLayout.addDrawerListener(drawerToggle); }
From source file:com.grottworkshop.gwsswipelayout.SwipeLayout.java
/** * if the view (v) wants to handle this event. * @param v the v// ww w. jav a2 s . c o m * @param event the event * @return v touch event or false */ private boolean childNeedHandleTouchEvent(View v, MotionEvent event) { if (v == null) return false; int[] loc = new int[2]; v.getLocationOnScreen(loc); int left = loc[0], top = loc[1]; return event.getRawX() > left && event.getRawX() < left + v.getWidth() && event.getRawY() > top && event.getRawY() < top + v.getHeight() && v.onTouchEvent(event); }