Android 仿酷狗滑动控件实现 流畅运行

最近又浏览了一遍github上的开源项目,有感于大神们的强大,所以想搞搞像kugou那样左右滑动的侧滑菜单控件。

打开移动设备的kugou软件,看了下整体效果,就知道了,我们要实现一个左侧主页,右侧菜单,拉动时以缩放式动画进场的控件。

创建项目等一些简单步骤就不说了。让我们来看下主要实现:
自定义一个控件DragLayout,继承自FrameLayout。

public class DragLayout extends FrameLayout {
   

    private boolean isShowShadow = false;

    /**
     * GestureDetectorCompat处理手势识别
     * OnGestureListener有下面的几个动作:
     * 按下(onDown):刚刚手指接触到触摸屏的那一刹那,就是触的那一下。
     * 抛掷(onFling): 手指在触摸屏上迅速移动,并松开的动作。
     * 长按(onLongPress): 手指按在持续一段时间,并且没有松开。 
     * 滚动(onScroll): 手指在触摸屏上滑动。
     * 按住(onShowPress): 手指按在触摸屏上,它的时间范围在按下起效,在长按之前。
     * 抬起(onSingleTapUp):手指离开触摸屏的那一刹那。
     */
    private GestureDetectorCompat gestureDetector;
    private ViewDragHelper dragHelper; // 简化view拖拽操作的帮助类
    private DragListener dragListener;
    private int range; //菜单关闭时跟原点的距离
    private int width;
    private int height;  
    private int mainLeft; //侧菜单距左侧原点位置的距离
    private Context context;
    // private ImageView iv_shadow;
    private RelativeLayout vg_right;
    private MyRelativeLayout vg_main;
    private Status status = Status.Close;//默认菜单关闭
    private boolean isFirstInflate = true;//用来帮助mainLeft第一次获取距离时的
                                        //布尔型,初始化为真,在onSizeChanged()中改变

    public DragLayout(Context context) {
        
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值