Android-->模仿360底部导航按钮
2016-07-29 17:51
513 查看
效果图:
如果没有左右2个边界的判断, 其实还是很简单的.
那就不断绘制drawCircle就可以了.
难就难在左右边界这2个特殊的地方.
我这里使用了drawArc的方法,完成左右2个特殊的地方.
部分代码:
使用方法:
源码地址:
https://github.com/angcyo/RJcenter/blob/master/rsen/src/main/java/com/rsen/drawable/CircleAnimDrawable.java
至此: 文章就结束了,如有疑问: QQ群:274306954 欢迎您的加入.
如果没有左右2个边界的判断, 其实还是很简单的.
那就不断绘制drawCircle就可以了.
难就难在左右边界这2个特殊的地方.
我这里使用了drawArc的方法,完成左右2个特殊的地方.
部分代码:
//首先绘制 内圆. 也就是没有透明颜色的圆 mPaint.setColor(mCircleColor); canvas.drawCircle(mCx, mCy, Math.min(curRadius, mCircleRadius), mPaint); //其次 绘制,带有透明颜色的圆 mPaint.setColor(mCircleColorOut); canvas.drawCircle(mCx, mCy, Math.min(curRadius, mCircleRadiusOut), mPaint); //最后判断是否是左右特殊位置, 绘制arc if (drawLeft) { mPaint.setColor(mCircleColor); canvas.drawArc(getArcRecF(Math.min(curRadius, mCircleRadiusMax)), 90, 180, true, mPaint); } else if (drawRight) { mPaint.setColor(mCircleColor); canvas.drawArc(getArcRecF(Math.min(curRadius, mCircleRadiusMax)), -90, 180, true, mPaint); } //为了动画,需要一直改变绘制的半径 if (curRadius < maxRadius) { curRadius += mRadiusDrawStep; invalidateSelf(); }
使用方法:
//设置普通的背景 button.setBackground(new CircleAnimDrawable().setPosition(CircleAnimDrawable.POS_LEFT)); button.setBackground(new CircleAnimDrawable().setPosition(CircleAnimDrawable.POS_CENTER)); button.setBackground(new CircleAnimDrawable().setPosition(CircleAnimDrawable.POS_RIGHT));
//如果要在RadioButton里面使用,需要包一层Drawable private Drawable createRadioBackground(int position) { StateListDrawable listDrawable = new StateListDrawable(); listDrawable.addState(new int[]{android.R.attr.state_checked}, new CircleAnimDrawable().setPosition(position)); return listDrawable; }
源码地址:
https://github.com/angcyo/RJcenter/blob/master/rsen/src/main/java/com/rsen/drawable/CircleAnimDrawable.java
至此: 文章就结束了,如有疑问: QQ群:274306954 欢迎您的加入.
相关文章推荐
- 360.狗改不了吃屎?
- 每日安全资讯:360 浏览器批准 Google 六项入根申请
- 网信办约谈360doc个人图书馆限期整改
- jQuery实现下滑菜单导航效果代码
- jquery实现的仿天猫侧导航tab切换效果
- PHP的栏目导航程序
- jquery实现向下滑出的二级导航下滑菜单效果
- 基于jQuery实现以手风琴方式展开和折叠导航菜单
- JS+CSS实现六级网站导航主菜单效果
- JS实现网页顶部向下滑出的全国城市切换导航效果
- 原生js和jquery分别实现横向导航菜单效果
- 使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
- js实现显示当前状态的导航效果代码
- javascript实现当前页导航激活的方法
- JS+CSS实现的日本门户网站经典选项卡导航效果
- JS实现自动变化的导航菜单效果代码
- jquery实现红色竖向多级向右展开的导航菜单效果
- jQuery实现的背景动态变化导航菜单效果
- 基于jquery固定于顶部的导航响应浏览器滚动条事件
- jquery动态导航插件dynamicNav用法实例分析