Skip to content

Commit dad2b28

Browse files
committed
Merge branch 'develop'
2 parents 84c2b0b + 3067e21 commit dad2b28

File tree

60 files changed

+1133
-30
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+1133
-30
lines changed

README.md

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
[![header](./header.png)](https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=circle-menu-android-logo)
2+
3+
# CircleMenu for Android
4+
[![Twitter](https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat)](http://twitter.com/Ramotion)
5+
6+
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/42eb7b00b93645c0812c045ab26cb3b7)](https://www.codacy.com/app/dvg4000/circle-menu-android?utm_source=github.com&utm_medium=referral&utm_content=Ramotion/circle-menu-android&utm_campaign=Badge_Grade)
7+
[![CircleCI](https://circleci.com/gh/Ramotion/circle-menu-android/tree/master.svg?style=svg)](https://circleci.com/gh/Ramotion/circle-menu-android/tree/master)
8+
9+
## About
10+
This project is maintained by Ramotion, Inc.<br>
11+
We specialize in the designing and coding of custom UI for Mobile Apps and Websites.<br><br>**Looking for developers for your project?**
12+
13+
<a href="https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=circle-menu-android-contact-us/#Get_in_Touch" > <img src="https://github.com/Ramotion/navigation-stack/raw/master/contact_our_team@2x.png" width="150" height="30"></a>
14+
15+
![Animation](./preview.gif)
16+
17+
The [Android mockup](https://store.ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=circle-menu-android) available [here](https://store.ramotion.com/product/htc-one-a9-mockups?utm_source=gthb&utm_medium=special&utm_campaign=circle-menu-android).
18+
19+
## Requirements
20+
21+
- Android 4.4 KitKat (API lvl 19) or greater
22+
- Your favorite IDE
23+
24+
## Installation
25+
26+
<!-- TODO: add url -->
27+
Just download the package from [here]() and add it to your project classpath, or just use the maven repo:
28+
29+
<!-- TODO: add package -->
30+
Gradle:
31+
```groovy
32+
'com.ramotion.?'
33+
```
34+
SBT:
35+
```scala
36+
libraryDependencies += "?"
37+
```
38+
Maven:
39+
```xml
40+
<dependency>
41+
<groupId>com.ramotion.?</groupId>
42+
<artifactId>?</artifactId>
43+
<version>?</version>
44+
</dependency>
45+
```
46+
47+
48+
## Basic usage
49+
50+
Place the `CircleMenuView` in your layout and set the icons and colors of the buttons, as shown below.
51+
```xml
52+
app:button_colors="@array/colors"
53+
app:button_icons="@array/icons"
54+
```
55+
56+
Example of arrays `colors` and `icons` in `res\values\buttons.xml`:
57+
```xml
58+
<?xml version="1.0" encoding="utf-8"?>
59+
<resources>
60+
<array name="icons">
61+
<item>@drawable/ic_home_white_24dp</item>
62+
<item>@drawable/ic_search_white_24dp</item>
63+
<item>@drawable/ic_notifications_white_24dp</item>
64+
<item>@drawable/ic_settings_white_24dp</item>
65+
<item>@drawable/ic_place_white_24dp</item>
66+
</array>
67+
<array name="colors">
68+
<item>@android:color/holo_blue_light</item>
69+
<item>@android:color/holo_green_dark</item>
70+
<item>@android:color/holo_red_light</item>
71+
<item>@android:color/holo_purple</item>
72+
<item>@android:color/holo_orange_light</item>
73+
</array>
74+
</resources>
75+
```
76+
77+
Or use the constructor
78+
```java
79+
CircleMenuView(@NonNull Context context, @NonNull List<Integer> icons, @NonNull List<Integer> colors)
80+
```
81+
to add `CircleMenuView` and configure the buttons programmatically (in the code).
82+
83+
Next, connect the event handler `CircleMenuView.EventListener` as shown below,
84+
and override the methods you need.
85+
86+
```java
87+
final CircleMenuView menu = (CircleMenuView) findViewById(R.id.circle_menu);
88+
menu.setEventListener(new CircleMenuView.EventListener() {
89+
@Override
90+
public void onMenuOpenAnimationStart(@NonNull CircleMenuView view) {
91+
Log.d("D", "onMenuOpenAnimationStart");
92+
}
93+
94+
@Override
95+
public void onMenuOpenAnimationEnd(@NonNull CircleMenuView view) {
96+
Log.d("D", "onMenuOpenAnimationEnd");
97+
}
98+
99+
@Override
100+
public void onMenuCloseAnimationStart(@NonNull CircleMenuView view) {
101+
Log.d("D", "onMenuCloseAnimationStart");
102+
}
103+
104+
@Override
105+
public void onMenuCloseAnimationEnd(@NonNull CircleMenuView view) {
106+
Log.d("D", "onMenuCloseAnimationEnd");
107+
}
108+
109+
@Override
110+
public void onButtonClickAnimationStart(@NonNull CircleMenuView view, int index) {
111+
Log.d("D", "onButtonClickAnimationStart| index: " + index);
112+
}
113+
114+
@Override
115+
public void onButtonClickAnimationEnd(@NonNull CircleMenuView view, int index) {
116+
Log.d("D", "onButtonClickAnimationEnd| index: " + index);
117+
}
118+
});
119+
```
120+
121+
Here are the attributes you can specify through XML or related setters:
122+
* `button_icons` - Array of buttons icons.
123+
* `button_colors` - Array of buttons colors.
124+
* `icon_menu` - Menu default icon.
125+
* `icon_close` - Menu closed icon.
126+
* `icon_color` - Menu icon color.
127+
* `duration_ring` - Ring effect duration.
128+
* `duration_open` - Menu opening animation duration.
129+
* `duration_close` - Menu closing animation duration.
130+
* `distance` - Distance between center button and buttons
131+
132+
## License
133+
134+
CircleMenu for Android is released under the MIT license.
135+
See [LICENSE](./LICENSE.md) for details.
136+
137+
## Follow us
138+
139+
[![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=https://github.com/Ramotion/circle-menu-android)
140+
[![Twitter Follow](https://img.shields.io/twitter/follow/ramotion.svg?style=social)](https://twitter.com/ramotion)

build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33
buildscript {
44
repositories {
5+
google()
56
jcenter()
67
}
78
dependencies {
8-
classpath 'com.android.tools.build:gradle:2.3.3'
9+
classpath 'com.android.tools.build:gradle:3.0.0'
910

1011
// NOTE: Do not place your application dependencies here; they belong
1112
// in the individual module build.gradle files

circle-menu-simple-example/build.gradle

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ apply plugin: 'com.android.application'
22

33
android {
44
compileSdkVersion 26
5-
buildToolsVersion "26.0.1"
5+
buildToolsVersion '26.0.2'
66
defaultConfig {
7-
applicationId "com.ramotion.circlemenu"
8-
minSdkVersion 19
7+
applicationId "com.ramotion.circlemenu.example.simple"
8+
minSdkVersion 16
99
targetSdkVersion 26
1010
versionCode 1
1111
versionName "1.0"
@@ -20,11 +20,12 @@ android {
2020
}
2121

2222
dependencies {
23-
compile fileTree(dir: 'libs', include: ['*.jar'])
23+
compile fileTree(include: ['*.jar'], dir: 'libs')
2424
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
2525
exclude group: 'com.android.support', module: 'support-annotations'
2626
})
2727
compile 'com.android.support:appcompat-v7:26.+'
2828
compile 'com.android.support.constraint:constraint-layout:1.0.2'
2929
testCompile 'junit:junit:4.12'
30+
compile project(':circle-menu')
3031
}

circle-menu-simple-example/src/main/AndroidManifest.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="com.ramotion.circlemenu">
3+
package="com.ramotion.circlemenu.example.simple">
44

55
<application
66
android:allowBackup="true"
@@ -12,7 +12,6 @@
1212
<activity android:name=".MainActivity">
1313
<intent-filter>
1414
<action android:name="android.intent.action.MAIN" />
15-
1615
<category android:name="android.intent.category.LAUNCHER" />
1716
</intent-filter>
1817
</activity>

circle-menu-simple-example/src/main/java/com/ramotion/circlemenu/MainActivity.java

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.ramotion.circlemenu.example.simple;
2+
3+
import android.os.Bundle;
4+
import android.support.annotation.NonNull;
5+
import android.support.v7.app.AppCompatActivity;
6+
import android.util.Log;
7+
8+
import com.ramotion.circlemenu.CircleMenuView;
9+
10+
11+
public class MainActivity extends AppCompatActivity {
12+
13+
@Override
14+
protected void onCreate(Bundle savedInstanceState) {
15+
super.onCreate(savedInstanceState);
16+
setContentView(R.layout.activity_main);
17+
18+
final CircleMenuView menu = (CircleMenuView) findViewById(R.id.circle_menu);
19+
menu.setEventListener(new CircleMenuView.EventListener() {
20+
@Override
21+
public void onMenuOpenAnimationStart(@NonNull CircleMenuView view) {
22+
Log.d("D", "onMenuOpenAnimationStart");
23+
}
24+
25+
@Override
26+
public void onMenuOpenAnimationEnd(@NonNull CircleMenuView view) {
27+
Log.d("D", "onMenuOpenAnimationEnd");
28+
}
29+
30+
@Override
31+
public void onMenuCloseAnimationStart(@NonNull CircleMenuView view) {
32+
Log.d("D", "onMenuCloseAnimationStart");
33+
}
34+
35+
@Override
36+
public void onMenuCloseAnimationEnd(@NonNull CircleMenuView view) {
37+
Log.d("D", "onMenuCloseAnimationEnd");
38+
}
39+
40+
@Override
41+
public void onButtonClickAnimationStart(@NonNull CircleMenuView view, int index) {
42+
Log.d("D", "onButtonClickAnimationStart| index: " + index);
43+
}
44+
45+
@Override
46+
public void onButtonClickAnimationEnd(@NonNull CircleMenuView view, int index) {
47+
Log.d("D", "onButtonClickAnimationEnd| index: " + index);
48+
}
49+
});
50+
}
51+
}
222 Bytes
Loading
234 Bytes
Loading
371 Bytes
Loading
396 Bytes
Loading

0 commit comments

Comments
 (0)