登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

android弹力效果的抽屉菜单源码

[复制链接]
来自: littleRed 分类: Android精品源码 上传时间: 2017-11-13 17:37:58
Tag:

项目介绍:

一款滑动菜单,类似AndroidResidemenu,SlidingMenu,和其他滑动菜单之间 最大的区别是:它提供的灵活性弹跳

Gradle

dependencies {
    compile 'com.jpeng:jpspringmenu:$latestVersion'
}

在Activity内初始化Menu

    // R.layout.view_menu 是你自定义的Menu View的资源ID
    SpringMenu menu = new SpringMenu(this,R.layout.view_menu);
    
    // 为菜单做各种各样的设置...

不要忘记在Activity重写dispatchTouchEvent

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
         return menu.dispatchTouchEvent(ev);
    }
通过SpringConfig,你可以改变菜单和子布局的弹性速度和力量
    /*
    另一种方式来构建SpringConfig是frombouncinessandspeed
     friction : 2f -4f 是合适值的范围,太小速度很快,弹性时间长,太大速度会很慢
    friction的值一定不能为0,否则会无限反弹,根据rebound api的定义
    */
mSpringMenu.setMenuSpringConfig(SpringConfig.fromOrigamiTensionAndFriction(20,3));
mSpringMenu.setChildSpringConfig(SpringConfig.fromOrigamiTensionAndFriction(20, 5));

如果有滑块控件和菜单的一些冲突,你可以试试addignoreview忽略它们

    mSpringMenu.addIgnoreView(...);

MenuListener可以用来监听菜单事件的变化,里面有三种回调方法:

//打开后的回调
void onMenuOpen();
//关闭后的回调
void onMenuClose();

/**
 * 当菜单正在被打开或者被关闭时,这个方法将会被回调(包含拖动弧度)
 * @value: 0f-2f,0f表示菜单关闭,2f则表示打开
 * @bouncing: 这个布尔值用来判断菜单是否在反弹状态
 * 当处于反弹状态时,这个值无限趋近于2f,否则就是0f
 */
void onProgressUpdate(float value,boolean bouncing);

剩余部分较为重要的Api

     // 内容页变暗的效果
     setFadeEnable(boolean);
     
     // 允许菜单开始拖动的距离
     setDragOffset(float);
     
     setDirection(int direction);

相关源码推荐:

我来说两句
所有评论(51)
allow.xuweibin 2017-11-13 17:43:46
感觉楼主很用心,辛苦啦~
回复
changyounet 2017-11-13 17:48:16
感谢大神~
回复
九酒 2017-11-13 17:54:36
感谢分享,楼主V5~
回复
humanboy 2017-11-13 18:03:16
安卓巴士是个不错的网站,我来顶个贴~
回复
春城计算机 2017-11-13 18:07:36
楼主威武,以后多发干货,多办活动~!
回复
设女郎 2017-11-13 18:13:06
楼主是好人,回个帖会有安币吗?
回复
sunnyxny 2017-11-14 09:31:57
感谢分享,安卓巴士有你更精彩:)
回复
提取码:  下载次数:15 状态:已购或VIP 售价:15(原价:15)金钱 下载权限:限制会员 
1456 2 15
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,769657487

如何获得代码达人称号

如何成为签约作者

联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表