GeooyMenu 设置一开始不显示
2015-11-06 11:39
239 查看
这是开源代码链接
GeooyMenu
简单说下,这个菜单的所实现的效果.就是点击一个按钮会弹出多个子按钮的这么一个动画效果.
在不修改代码的前提下,界面一进去,子菜单就已经显示出来了.
想要的效果是,一开始不显示子菜单,点击后才显示.
源码:
在onDraw方法中,打印circlePoint.radius是一直在变化的.当你关闭的时候radius等于0.所以就去找在哪里设置了这个radius.
最后把private boolean isMenuVisible = true;修改成false
纯属个人看法!!!
GeooyMenu
简单说下,这个菜单的所实现的效果.就是点击一个按钮会弹出多个子按钮的这么一个动画效果.
在不修改代码的前提下,界面一进去,子菜单就已经显示出来了.
想要的效果是,一开始不显示子菜单,点击后才显示.
源码:
protected void onDraw(Canvas canvas) { super.onDraw(canvas); for (int i = 0; i < mNumberOfMenu; i++) { CirclePoint circlePoint = mMenuPoints.get(i); float x = (float) (circlePoint.radius * Math.cos(circlePoint.angle)); float y = (float) (circlePoint.radius * Math.sin(circlePoint.angle)); canvas.drawCircle(x + mCenterX, mCenterY - y, mMenuButtonRadius, mCirclePaint); if (i < mDrawableArray.size()) { canvas.save(); canvas.translate(x + mCenterX - mMenuButtonRadius / 2, mCenterY - y - mMenuButtonRadius / 2); //canvas.translate(x , y); mDrawableArray.get(i).draw(canvas); //将drawable画到小圆中 canvas.restore(); } } canvas.save(); canvas.translate(mCenterX, mCenterY); Path path = createPath(); canvas.drawPath(path, mCirclePaint); canvas.drawPath(path, mCircleBorder); canvas.rotate(mRotationAngle); canvas.drawBitmap(mPlusBitmap, -mPlusBitmap.getWidth() / 2, -mPlusBitmap.getHeight() / 2, mCirclePaint); canvas.restore(); }
在onDraw方法中,打印circlePoint.radius是一直在变化的.当你关闭的时候radius等于0.所以就去找在哪里设置了这个radius.
/* 在onSizeChanged方法中,看到这行代码. mGab表示子菜单之间的距离,也就是你在xml文件中设置的app:gap_between_menu_fab */ circlePoint.setRadius(mGab); //所以想一开始不显示在菜单,注释掉这句话.再一开始的时候,不要让view画出子菜单项
最后把private boolean isMenuVisible = true;修改成false
纯属个人看法!!!
相关文章推荐
- MySQL:Table XXX is marked as crashed and should be repaired
- 黑马程序员---自学随堂笔记----网络编程
- linux信号
- 设计模式一:观察者模式的自我实现
- find -exec 命令总是报缺参数错误
- Android开发&多媒体控件
- masonry的简单使用
- js读txt
- 面试深度问题
- 浅谈 iOS 中的 Activity Indicator
- 数据库课本SQL第三章答案
- 定义文档兼容性、让IE按指定版本解析我们的页面
- docker pure-ftp 搭建ftp服务器
- 运用PHP位运算做网站权限
- 读取远程表并逆向生成建表语句
- 史上最全的iOS面试题及答案
- OkHttp 上手
- 网狐房间连接不上
- 每天八杯水的合理分配方法
- JS-在WebStorm上使用TypeScript