android 右滑关闭activity
2016-01-13 16:15
567 查看
自定义实现了一个开发过程中遇到的一个需求。即右滑关闭当前acitvity,没有像某个大神一样考虑那么多情况,只是满足个人需要。
下面看实现
定义View
2 . 使用
BaseActivity中添加如下代码,其他作为其他activity的父类
Over~
下面看实现
定义View
/** * 用于右滑关闭activity * @author Richard * */ public class RightSlideFinishView extends FrameLayout { private GestureDetector mGD; private Activity mActivity; public RightSlideFinishView(Context context) { super(context); mGD = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { int dx = (int) (e2.getX() - e1.getX()); // 计算滑动的距离 if (Math.abs(dx) > 100 && Math.abs(velocityX) > Math.abs(velocityY)) { // 降噪处理,必须有较大的动作才识别 if (velocityX > 0) { //向右边 mActivity.finish(); } else { // 向左边 Log.i("aaa","aaa"); } return true; } else { return false; // 当然可以处理velocityY处理向上和向下的动作 } } }); } // 接下来是重点,让我们的View接受触控 @Override public boolean onTouchEvent(MotionEvent event) { mGD.onTouchEvent(event); return true; } @Override public boolean onInterceptTouchEvent(MotionEvent event) { return mGD.onTouchEvent(event); } public void attachToActivity(Activity activity) { mActivity = activity; TypedArray a = activity.getTheme().obtainStyledAttributes( new int[] { android.R.attr.windowBackground }); int background = a.getResourceId(0, 0); a.recycle(); ViewGroup decor = (ViewGroup) activity.getWindow().getDecorView(); ViewGroup decorChild = (ViewGroup) decor.getChildAt(0); decorChild.setBackgroundResource(background); decor.removeView(decorChild); addView(decorChild); decor.addView(this); }
2 . 使用
BaseActivity中添加如下代码,其他作为其他activity的父类
protected RightSlideFinishView layout; layout=new RightSlideFinishView(this); layout.attachToActivity(this);
Over~
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories