Android 向左向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果

这篇博客介绍了如何在Android中实现通过左右滑动手势销毁Activity,包括滑动距离和速度的判断。当滑动超过屏幕宽度一半或速度达到一定阈值时,Activity将被关闭。同时,文中分享了相关的代码实现和可能遇到的问题。
摘要由CSDN通过智能技术生成

最近在学习手势操作的时候看到了这篇文章  Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果

博客地址 :http://blog.csdn.net/xiaanming/article/details/20934541

里面讲的真心不错,对我帮助很大。

这篇博客的主要思想是:

1.从左往右滑动屏幕时,如果滑动距离超过屏幕宽度的一半,就finish,否则不finish,并且滑回左侧。

2.通过对左右滑动距离和上下滑动的距离的判断来确定处理哪个事件。如果左右距离大于mTouchSlop,而且上下滑动距离小于mTouchSlop,就判定为左右滑动销毁事件。

其他情况下,处理ListView等的滑动,点击等事件。


在此基础上,我修改了一些代码,最终实现  向左向右滑动销毁(finish)Activity,并且添加了一个VelocityTrack,使得当从左往右或者从右往左滑动的速率达到一定的值时,即使移动距离没有达到屏幕宽度的一半,也可以finishActivity.


下面是修改的代码:


case MotionEvent.ACTION_UP:
    if (isSilding) {
        final VelocityTracker velocityTracker = mVelocityTracker;
        velocityTracker.computeCurrentVelocity(1000);
        int velocityX = (int) velocityTracker.getXVelocity();//设置units的值为1000,意思为一秒时间内运动了多少个像素


        if (velocityX > SNAP_VELOCITY) {
 //速率超过600,正数为从左往右,负数从右往左
            scrollRight();
        } else if (velocityX < -SNAP_VELOCITY) {
            scrollLeft();
        } else {
            scrollToDestination();
        }
        //
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android中实现左右滑动动画,可以使用ViewPager。ViewPager是一个视图容器,可以让用户在屏幕上左右滑动,以便浏览多个页面。 下面是一些步骤,以实现ViewPager左右滑动翻页效果: 1. 在布局文件中添加ViewPager。 ```xml <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFF" /> ``` 2. 在MainActivity中,创建一个PagerAdapter类,它将管理页面。 ```java public class MyPagerAdapter extends PagerAdapter { private List<View> viewList; public MyPagerAdapter(List<View> viewList) { this.viewList = viewList; } @Override public int getCount() { return viewList.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(viewList.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(viewList.get(position)); return viewList.get(position); } } ``` 3. 在MainActivity中,为ViewPager设置PagerAdapter。 ```java ViewPager viewPager = findViewById(R.id.viewPager); List<View> viewList = new ArrayList<>(); viewList.add(new View(this)); viewList.add(new View(this)); viewList.add(new View(this)); MyPagerAdapter adapter = new MyPagerAdapter(viewList); viewPager.setAdapter(adapter); ``` 现在,当用户在ViewPager中左右滑动时,页面滑动到下一页,实现了左右滑动翻页效果。 当然,你可以在PagerAdapter中添加自己的View,以实现更多的自定义效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值