是不是有些时候,单手在大屏的Android手机上进行操作,发现手指再长也不可能长过屏幕,特别是返回操作,有时候需要另一个手加入,看到很多APP(新浪微博、QQ、微信)都实现了单手快速往右水平滑动,实现back功能,交互体验好多了。自己也做了一个来玩玩。
主要思路是实现 OnGestureListener 的 onFling 接口,监听当手指move操作的时候,当水平快速移动到一定距离,就结束当前Activity,实现是挺简单的。为了方便以后使用,重写了个Activity实现,使用的时候,只要继承该Activity即可。
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if(e2.getX() - e1.getX() > mFlingWidth
&& Math.abs(velocityX) > VELOCITY_X) {
finish();
overridePendingTransition(R.anim.slide_in_left
, R.anim.slide_out_right);
}
return false;
中间还加了个切换效果:
overridePendingTransition(R.anim.slide_in_left
, R.anim.slide_out_right);
为了实现一致的交互,backPressed方法也要重写:
@Override public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.slide_in_left
, R.anim.slide_out_right);
}
具体的样式和代码地址:https://github.com/cpp255/Android-CPP255-Views 点击打开链接