前言
目前市场很多的APP都带有窗口滑动切换关闭,这种切换,使得用户操作比较爽,而且觉得功能点上也比较大气,在此就是自己总结了一个简易的方法,直接替换在基础窗口里面,使用安卓最基础的方法进行实现;
需求说明
首先是明确从哪里滑动:一般习惯都是从左边缘开始滑动
手指在滑动的时候页面进行移动
松开手指之后,要判断是否滑出关闭,还是恢复以前状态;
实现的代码
一、继承一个帧布局,重写方法:
public class ArActSlidLayout extends FrameLayout {
// 页面边缘阴影的宽度默认值
private static final int SHADOW_WIDTH = 16;
private Activity mActivity;
private Scroller mScroller; //安卓自带的一个滑动计算的类,只做计算,不参与逻辑;
// 页面边缘的阴影图
private Drawable mLeftShadow;
// 页面边缘阴影的宽度
private int mShadowWidth;
private int mInterceptDownX; //手指按下,拦截的x值
private int mLastInterceptX;//记录最后一次坐标
private int mLastInterceptY;
private int mTouchDownX; //消费的x值
private int mLastTouchX;
private int mLastTouchY;
private boolean isConsumed = false;是否可以滑动
public ArActSlidLayout(Context context) {
this(context, null);
}
public ArActSlidLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public ArActSlidLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
}
private void initView(Context context) {
mScroller = new Scroller(context);
mLeftShadow = getResources().getDrawable(R.drawable.left_shadow);//得到