在 Android Studio 中控制速度
Controlling Velocity in Android Studio
我已经设法在用户向上滑动时打开一个新的 activity,但是他们必须以一定的速度向上滑动才能启动新的 activity。
会不会是 class 速度的原因?我可以控制它,甚至可以将其更改为仅检测运动吗?
代码
public class HomePage extends AppCompatActivity {
private GestureDetectorCompat gestureDetectorCompat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_page);
gestureDetectorCompat = new GestureDetectorCompat(this, new MyGestureListener());
}
@Override
public boolean onTouchEvent (MotionEvent event) {
this.gestureDetectorCompat.onTouchEvent(event);
return super.onTouchEvent(event);
}
class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
//handle 'swipe up' action only
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2,
float velocityX, float velocityY){
/*
Toast.makeText (getBaseContext(),
event1.toString() + "\n\n" +event2.toSting(),
Toast.LENGTH_SHORT).show();
*/
if (event2.getX() < event1.getX()){
Toast.makeText(getBaseContext(),
"Swipe Up - startActivity()",
Toast.LENGTH_SHORT).show();
//switch another activity
Intent intent = new Intent(
HomePage.this, New_Page.class);
startActivity(intent);
}
return true;
}
}
}
I have managed to get a new activity to open when the user swipes up
不正确
当用户 Flings 向上时,您已成功打开一个 Activity,flinging 已将最小速度(由 SDK class 确定)设置为算作一掷千金。
如果您希望应用程序以较慢的速度打开,您可能需要查看更自定义的解决方案或开始查看 SimpleOnGestureListener
的 onScroll
我已经设法在用户向上滑动时打开一个新的 activity,但是他们必须以一定的速度向上滑动才能启动新的 activity。
会不会是 class 速度的原因?我可以控制它,甚至可以将其更改为仅检测运动吗?
代码
public class HomePage extends AppCompatActivity {
private GestureDetectorCompat gestureDetectorCompat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_page);
gestureDetectorCompat = new GestureDetectorCompat(this, new MyGestureListener());
}
@Override
public boolean onTouchEvent (MotionEvent event) {
this.gestureDetectorCompat.onTouchEvent(event);
return super.onTouchEvent(event);
}
class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
//handle 'swipe up' action only
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2,
float velocityX, float velocityY){
/*
Toast.makeText (getBaseContext(),
event1.toString() + "\n\n" +event2.toSting(),
Toast.LENGTH_SHORT).show();
*/
if (event2.getX() < event1.getX()){
Toast.makeText(getBaseContext(),
"Swipe Up - startActivity()",
Toast.LENGTH_SHORT).show();
//switch another activity
Intent intent = new Intent(
HomePage.this, New_Page.class);
startActivity(intent);
}
return true;
}
}
}
I have managed to get a new activity to open when the user swipes up
不正确
当用户 Flings 向上时,您已成功打开一个 Activity,flinging 已将最小速度(由 SDK class 确定)设置为算作一掷千金。
如果您希望应用程序以较慢的速度打开,您可能需要查看更自定义的解决方案或开始查看 SimpleOnGestureListener
onScroll