登录 立即注册
安币:

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

Android 圆形菜单集,支持收起和展开,旋转

[复制链接]
来自: MrlLee 分类: Android精品源码 上传时间: 2016-6-28 16:26:04
Tag:Android library Failed commit latest

项目介绍:

Permalink
Failed to load latest commit information.
app gradle Apr 28, 2016
gradle/wrapper first commit Apr 23, 2016
library gradle Apr 28, 2016
screenshots markdown Apr 27, 2016
.gitignore del .idea Apr 27, 2016
README.md gradle Apr 28, 2016
build.gradle gradle Apr 28, 2016
gradle.properties markdown Apr 27, 2016
gradlew first commit Apr 23, 2016
gradlew.bat first commit Apr 23, 2016
settings.gradle gradle Apr 28, 2016

游客,如果您要查看本帖隐藏内容请回复

CircleRotateMenuView



Android 圆形菜单集,支持收起和展开,旋转。




Feature




  • 拖动旋转柄可以旋转,支持最大最小旋转角度.

  • 点击菜单柄展开和收取菜单集.

  • 动态分配菜单集位置,菜单集个数任意,起始菜单柄位置自定义,旋转柄起始位置自定义



Issue




  • 运用简单的内部添加控件,控制动画,控制touchEvent实现.辅助控件较多可能存在性能的问题.

  • 由于rotateAnimation.RELATIVE_TO_PARENT不能使菜单项围绕中心点旋转,
    现使用折衷的方式(rotateAnimation.RELATIVE_TO_SELF在菜单项套一层view,但相应的代码会增多)

  • 暂未调查其他相似控件的实现原理,有更好的实现方式将会引入优化。



Gradle



compile 'com.yovenny.CircleRotateMenu:library:1.0.0'


Usage



*incode*



      private View.OnClickListener[] sClickArray = new View.OnClickListener[]{
new View.OnClickListener() {
@Override
public void onClick(View v) {
cvMainCircle.toggleMenu();
}
},
new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "click2", Toast.LENGTH_SHORT).show();
}
}
,
new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "click3", Toast.LENGTH_SHORT).show();
}
}
,
new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "click4", Toast.LENGTH_SHORT).show();
}
}
,
new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "click5", Toast.LENGTH_SHORT).show();
}
}
,
new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "click6", Toast.LENGTH_SHORT).show();
}
}

};


private static int[] sBtnArray = new int[]{R.drawable.btn_more_selector
, R.drawable.btn_graph_selector
, R.drawable.btn_timer_selector
, R.drawable.btn_power_selector
, R.drawable.btn_hot_selector
,R.drawable.btn_cold_selector
};

//rotate handle
TextView tv = new TextView(MainActivity.this);
tv.setText("999");
tv.setTextSize(18);
tv.setTextColor(Color.WHITE);



cvMainCircle = (CircleRotateView) findViewById(R.id.cv_main_circle);
cvMainCircle.setClickable(true);
cvMainCircle.setFocusable(true);
cvMainCircle.setMenuResource(sBtnArray)
.setMenuClickListener(sClickArray)
.setCircleHandleView(tv)
//min write
.setCircleBgResource(R.drawable.main_circle)
.setMenuHandleStartDegree(90)
.setMenuIntervalDegree(30)
.setRotateHandleStartDegree(-43)
.setMenuItemWidth(120)

.setRotateDegree(180,-180)
.setOnRotateListener(new CircleRotateView.OnRotateListener() {
@Override
public void onRotateMin() {
Toast.makeText(MainActivity.this, "min", Toast.LENGTH_SHORT).show();
}

@Override
public void onRotateMax() {
Toast.makeText(MainActivity.this, "max", Toast.LENGTH_SHORT).show();
}

@Override
public void onRotate(float degree) {

}
});


*in xml*



        <com.yovenny.circlerotatemenu.CircleRotateView
android:id="@+id/cv_main_circle"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_centerInParent="true"
app:circle_handle_start_degree="-45"
app:menu_handle_start_degree="90"
app:menu_interval_degree="30"
app:menu_width="60dp"
app:max_rotate_degree="180"
app:min_rotate_degree="-180"
app:circle_bg="@drawable/main_circle"/>

相关源码推荐:

我来说两句
*滑动验证:
所有评论(112)
changyounet 2016-6-28 17:07:59
apkbus好的内容真的很多~赞
回复
东西南北 2016-6-28 17:36:09
膜拜大神~
回复
遗失的流年 2016-6-28 17:48:01
相当不错,感谢无私分享精神!
回复
alpha0510 2016-6-28 18:07:03
感谢分享,安卓巴士有你更精彩:)
回复
chaoyue 2016-6-28 18:35:02
感谢大神~
回复
qq2362359777 2016-6-28 19:04:42
感谢大神~
回复
___Boy、419 2016-6-28 21:58:27
很给力,安卓巴士有你更精彩!
回复
2380 2 0
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,769657487

如何获得代码达人称号

如何成为签约作者

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

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

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