Here you can find the source of createMotionEvents( final AbsListView absListView, final float fromY, final float toY)
public static List<MotionEvent> createMotionEvents( final AbsListView absListView, final float fromY, final float toY)
//package com.java2s; /*// ww w .j a v a 2 s .c o m * Copyright 2014 Niek Haarman * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import android.os.SystemClock; import android.view.MotionEvent; import android.widget.AbsListView; import java.util.ArrayList; import java.util.List; public class Main { public static List<MotionEvent> createMotionEvents( final AbsListView absListView, final float fromY, final float toY) { int x = (int) (absListView.getX() + absListView.getWidth() / 2); List<MotionEvent> results = new ArrayList<>(); results.add(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, x, fromY, 0)); float diff = (toY - fromY) / 25; float y = fromY; for (int i = 0; i < 25; i++) { y += diff; results.add(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_MOVE, x, y, 0)); } results.add(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, x, toY, 0)); return results; } }