Skip to content

Commit cc96df6

Browse files
committed
Adds text in circle menu
1 parent a0f04bd commit cc96df6

File tree

11 files changed

+260
-135
lines changed

11 files changed

+260
-135
lines changed

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@ dependencies {
2727
compile "com.android.support:appcompat-v7:25.3.1"
2828
compile "com.android.support:design:25.3.1"
2929
compile project(':library')
30+
compile 'com.android.support.constraint:constraint-layout:1.0.2'
3031
}

app/src/androidTest/java/com/imangazaliev/circlemenu/sample/ExampleInstrumentedTest.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

app/src/main/AndroidManifest.xml

Lines changed: 4 additions & 3 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.imangazaliev.circlemenu.sample">
3+
package="com.imangazaliev.circlemenu.sample">
44

55
<application
66
android:allowBackup="true"
@@ -10,11 +10,12 @@
1010
android:theme="@style/AppTheme">
1111
<activity android:name=".MainActivity">
1212
<intent-filter>
13-
<action android:name="android.intent.action.MAIN"/>
13+
<action android:name="android.intent.action.MAIN" />
1414

15-
<category android:name="android.intent.category.LAUNCHER"/>
15+
<category android:name="android.intent.category.LAUNCHER" />
1616
</intent-filter>
1717
</activity>
18+
<activity android:name=".CircleMenuText"></activity>
1819
</application>
1920

2021
</manifest>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.imangazaliev.circlemenu.sample;
2+
3+
import android.os.Bundle;
4+
import android.support.v7.app.AppCompatActivity;
5+
6+
public class CircleMenuText extends AppCompatActivity {
7+
8+
@Override
9+
protected void onCreate(Bundle savedInstanceState) {
10+
super.onCreate(savedInstanceState);
11+
setContentView(R.layout.activity_circle_menu_text);
12+
}
13+
}

app/src/main/java/com/imangazaliev/circlemenu/sample/MainActivity.java

Lines changed: 33 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
package com.imangazaliev.circlemenu.sample;
22

3+
import android.content.Intent;
34
import android.os.Bundle;
45
import android.support.design.widget.Snackbar;
56
import android.support.v7.app.AppCompatActivity;
67
import android.util.Log;
8+
import android.view.View;
79
import android.view.ViewGroup;
10+
import android.widget.Button;
11+
import android.widget.Toast;
812

913
import com.imangazaliev.circlemenu.CircleMenu;
1014
import com.imangazaliev.circlemenu.CircleMenuButton;
@@ -20,13 +24,21 @@ protected void onCreate(Bundle savedInstanceState) {
2024

2125
final ViewGroup snackbarContainer = (ViewGroup) findViewById(R.id.snackbar_contaner);
2226

23-
final CircleMenu circleMenuDefault = (CircleMenu) findViewById(R.id.circle_menu_default);
24-
//final CircleMenu circleMenuMultiple = (CircleMenu) findViewById(R.id.circle_menu_multiple);
25-
final CircleMenu circleMenuMultipleBorder = (CircleMenu) findViewById(R.id.circle_menu_multiple_border);
27+
//final CircleMenu circleMenuDefault = (CircleMenu) findViewById(R.id.circle_menu_default);
28+
final CircleMenu circleMenuMultiple = (CircleMenu) findViewById(R.id.circle_menu_multiple_border);
2629

27-
prepareViewCircleMenuDefault(circleMenuDefault, snackbarContainer);
28-
//prepareViewCircleMenuMultiple(circleMenuMultiple);
29-
prepareViewCircleMenuMultipleBorder(circleMenuMultipleBorder);
30+
final Button button = (Button) findViewById(R.id.button);
31+
32+
button.setOnClickListener(new View.OnClickListener() {
33+
@Override
34+
public void onClick(View v) {
35+
Intent i = new Intent(getBaseContext(), CircleMenuText.class);
36+
startActivity(i);
37+
}
38+
});
39+
40+
//prepareViewCircleMenuDefault(circleMenuDefault, snackbarContainer);
41+
prepareViewCircleMenuMultiple(circleMenuMultiple);
3042
}
3143

3244
private void prepareViewCircleMenuDefault(CircleMenu circleMenu, final ViewGroup snackbarContainer) {
@@ -55,54 +67,31 @@ private void prepareViewCircleMenuMultiple(CircleMenu circleMenuMultiple) {
5567
* adding dynamically
5668
*/
5769
for (int i = 0; i < 4; i ++) {
58-
CircleMenuButton circleMenuButton = new CircleMenuButton(this);
59-
60-
circleMenuButton.setColorNormal(R.color.color_normal);
61-
circleMenuButton.setColorPressed(R.color.color_pressed);
62-
circleMenuButton.setIconResId(R.drawable.ic_favorite);
63-
circleMenuButton.setFullDrawable(false);
64-
circleMenuButton.setMetaData(new ExampleData(i));
65-
66-
circleMenuMultiple.addButton(circleMenuButton);
67-
}
6870

69-
/**
70-
* get meta data of circles selected
71-
*/
72-
circleMenuMultiple.setOnConfirmationListener(new CircleMenu.OnConfirmationListener() {
73-
@Override
74-
public void onConfirmation(List<Object> listData) {
75-
for (int i =0; i< listData.size(); i++ ) {
76-
ExampleData exampleData = (ExampleData) listData.get(i);
77-
Log.d("MainActivity", "Id: " + exampleData.getId());
78-
}
71+
com.imangazaliev.circlemenu.CircleMenuText circleMenuText = new com.imangazaliev.circlemenu.CircleMenuText(this);
72+
circleMenuText.setVisibility(View.INVISIBLE);
73+
circleMenuText.getCircleMenuButton().setMetaData(new ExampleData(i));
74+
circleMenuText.getCircleMenuButton().setIconResId(R.drawable.ic_favorite);
75+
circleMenuText.getCircleMenuButton().setFullDrawable(false);
76+
circleMenuText.getCircleMenuButton().setEnableBorder(true);
77+
circleMenuText.getCircleMenuButton().setClickable(false);
78+
79+
if (i > 2){
80+
circleMenuText.setTitle("NetoDevel");
81+
} else {
82+
circleMenuText.setTitle("Testing");
7983
}
80-
});
81-
}
82-
8384

84-
private void prepareViewCircleMenuMultipleBorder(CircleMenu circleMenu) {
85-
/**
86-
* adding dynamically
87-
*/
88-
for (int i = 0; i < 4; i ++) {
89-
CircleMenuButton circleMenuButton = new CircleMenuButton(this);
90-
91-
circleMenuButton.setColorNormal(R.color.color_normal);
92-
circleMenuButton.setColorPressed(R.color.color_pressed);
93-
circleMenuButton.setIconResId(R.drawable.ic_favorite);
94-
circleMenuButton.setEnableBorder(true);
95-
circleMenuButton.setMetaData(new ExampleData(i));
96-
97-
circleMenu.addButton(circleMenuButton);
85+
circleMenuMultiple.addButton(circleMenuText);
9886
}
9987

10088
/**
10189
* get meta data of circles selected
10290
*/
103-
circleMenu.setOnConfirmationListener(new CircleMenu.OnConfirmationListener() {
91+
circleMenuMultiple.setOnConfirmationListener(new CircleMenu.OnConfirmationListener() {
10492
@Override
10593
public void onConfirmation(List<Object> listData) {
94+
Toast.makeText(getBaseContext(), "Size checked:" + listData.size(), Toast.LENGTH_SHORT).show();
10695
for (int i =0; i< listData.size(); i++ ) {
10796
ExampleData exampleData = (ExampleData) listData.get(i);
10897
Log.d("MainActivity", "Id: " + exampleData.getId());
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
xmlns:tools="http://schemas.android.com/tools"
5+
android:layout_width="match_parent"
6+
android:layout_height="match_parent"
7+
tools:context="com.imangazaliev.circlemenu.sample.CircleMenuText">
8+
9+
<com.imangazaliev.circlemenu.CircleMenuText
10+
android:layout_centerInParent="true"
11+
android:id="@+id/circle_menu_text"
12+
android:layout_width="120dp"
13+
android:layout_height="120dp"></com.imangazaliev.circlemenu.CircleMenuText>
14+
15+
</RelativeLayout>

app/src/main/res/layout/activity_main.xml

Lines changed: 53 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -5,58 +5,59 @@
55
android:layout_height="match_parent"
66
android:background="#fff">
77

8-
<com.imangazaliev.circlemenu.CircleMenu
9-
android:id="@+id/circle_menu_default"
10-
android:layout_width="wrap_content"
11-
android:layout_height="wrap_content"
12-
app:hintsEnabled="true">
8+
<!--<com.imangazaliev.circlemenu.CircleMenu-->
9+
<!--android:visibility="gone"-->
10+
<!--android:id="@+id/circle_menu_default"-->
11+
<!--android:layout_width="wrap_content"-->
12+
<!--android:layout_height="wrap_content"-->
13+
<!--app:hintsEnabled="true">-->
1314

14-
<com.imangazaliev.circlemenu.CircleMenuButton
15-
android:id="@+id/favorite"
16-
android:layout_width="wrap_content"
17-
android:layout_height="wrap_content"
18-
app:colorNormal="#2196F3"
19-
app:colorPressed="#1E88E5"
20-
app:hintText="Favorite"
21-
app:icon="@drawable/ic_favorite" />
15+
<!--<com.imangazaliev.circlemenu.CircleMenuButton-->
16+
<!--android:id="@+id/favorite"-->
17+
<!--android:layout_width="wrap_content"-->
18+
<!--android:layout_height="wrap_content"-->
19+
<!--app:colorNormal="#2196F3"-->
20+
<!--app:colorPressed="#1E88E5"-->
21+
<!--app:hintText="Favorite"-->
22+
<!--app:icon="@drawable/ic_favorite" />-->
2223

23-
<com.imangazaliev.circlemenu.CircleMenuButton
24-
android:id="@+id/search"
25-
android:layout_width="wrap_content"
26-
android:layout_height="wrap_content"
27-
app:colorNormal="#4CAF50"
28-
app:colorPressed="#43A047"
29-
app:hintText="Search"
30-
app:icon="@drawable/ic_search" />
24+
<!--<com.imangazaliev.circlemenu.CircleMenuButton-->
25+
<!--android:id="@+id/search"-->
26+
<!--android:layout_width="wrap_content"-->
27+
<!--android:layout_height="wrap_content"-->
28+
<!--app:colorNormal="#4CAF50"-->
29+
<!--app:colorPressed="#43A047"-->
30+
<!--app:hintText="Search"-->
31+
<!--app:icon="@drawable/ic_search" />-->
3132

32-
<com.imangazaliev.circlemenu.CircleMenuButton
33-
android:id="@+id/alert"
34-
android:layout_width="wrap_content"
35-
android:layout_height="wrap_content"
36-
app:colorNormal="#F44336"
37-
app:colorPressed="#E53935"
38-
app:hintText="Alert"
39-
app:icon="@drawable/ic_alert" />
33+
<!--<com.imangazaliev.circlemenu.CircleMenuButton-->
34+
<!--android:id="@+id/alert"-->
35+
<!--android:layout_width="wrap_content"-->
36+
<!--android:layout_height="wrap_content"-->
37+
<!--app:colorNormal="#F44336"-->
38+
<!--app:colorPressed="#E53935"-->
39+
<!--app:hintText="Alert"-->
40+
<!--app:icon="@drawable/ic_alert" />-->
4041

41-
<com.imangazaliev.circlemenu.CircleMenuButton
42-
android:id="@+id/place"
43-
android:layout_width="wrap_content"
44-
android:layout_height="wrap_content"
45-
app:colorNormal="#9C27B0"
46-
app:colorPressed="#8E24AA"
47-
app:hintText="Place"
48-
app:icon="@drawable/ic_place" />
42+
<!--<com.imangazaliev.circlemenu.CircleMenuButton-->
43+
<!--android:id="@+id/place"-->
44+
<!--android:layout_width="wrap_content"-->
45+
<!--android:layout_height="wrap_content"-->
46+
<!--app:colorNormal="#9C27B0"-->
47+
<!--app:colorPressed="#8E24AA"-->
48+
<!--app:hintText="Place"-->
49+
<!--app:icon="@drawable/ic_place" />-->
4950

50-
<com.imangazaliev.circlemenu.CircleMenuButton
51-
android:id="@+id/edit"
52-
android:layout_width="wrap_content"
53-
android:layout_height="wrap_content"
54-
app:colorNormal="#FF9800"
55-
app:colorPressed="#FB8C00"
56-
app:hintText="Edit"
57-
app:icon="@drawable/ic_edit" />
51+
<!--<com.imangazaliev.circlemenu.CircleMenuButton-->
52+
<!--android:id="@+id/edit"-->
53+
<!--android:layout_width="wrap_content"-->
54+
<!--android:layout_height="wrap_content"-->
55+
<!--app:colorNormal="#FF9800"-->
56+
<!--app:colorPressed="#FB8C00"-->
57+
<!--app:hintText="Edit"-->
58+
<!--app:icon="@drawable/ic_edit" />-->
5859

59-
</com.imangazaliev.circlemenu.CircleMenu>
60+
<!--</com.imangazaliev.circlemenu.CircleMenu>-->
6061

6162
<!--<com.imangazaliev.circlemenu.CircleMenu-->
6263
<!--android:id="@+id/circle_menu_multiple"-->
@@ -69,7 +70,6 @@
6970
<!--app:confirmation_center_drawable="@drawable/ic_send_red">-->
7071
<!--</com.imangazaliev.circlemenu.CircleMenu>-->
7172

72-
7373
<com.imangazaliev.circlemenu.CircleMenu
7474
android:id="@+id/circle_menu_multiple_border"
7575
android:layout_width="wrap_content"
@@ -83,4 +83,10 @@
8383
app:confirmation_center_drawable="@drawable/ic_send_red">
8484
</com.imangazaliev.circlemenu.CircleMenu>
8585

86+
<Button
87+
android:id="@+id/button"
88+
android:layout_width="wrap_content"
89+
android:layout_height="wrap_content"
90+
android:text="Button" />
91+
8692
</RelativeLayout>

library/src/main/java/com/imangazaliev/circlemenu/CircleMenu.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55
import android.graphics.Canvas;
66
import android.graphics.drawable.Drawable;
77
import android.util.AttributeSet;
8+
import android.util.Log;
89
import android.view.View;
910
import android.view.ViewGroup;
11+
import android.widget.RelativeLayout;
12+
import android.widget.TextView;
1013
import android.widget.Toast;
1114

1215
import java.util.ArrayList;
@@ -114,7 +117,8 @@ private void addChildrenToController() {
114117
for (int i = 0; i < getChildCount(); i++) {
115118
View child = getChildAt(i);
116119
if (child != centerButton) {
117-
menuController.addButton((CircleMenuButton) child);
120+
Log.d("CircleMenu", "AQUI MISERA!: ");
121+
menuController.addButton((CircleMenuText) child);
118122
}
119123
}
120124
}
@@ -131,6 +135,7 @@ public void onClick(View v) {
131135

132136
addCenterDrawableIfEnable();
133137
addView(centerButton, super.generateDefaultLayoutParams());
138+
134139
}
135140

136141
private void clickCenterMenu() {
@@ -397,11 +402,22 @@ public boolean isExpanded() {
397402
return menuController.isExpanded();
398403
}
399404

400-
public void addButton(CircleMenuButton menuButton) {
405+
public void addButton(CircleMenuText menuButton) {
406+
Log.d("CircleMenu", "addButton: ");
401407
addView(menuButton, getChildCount() - 1);
402408
menuController.addButton(menuButton);
403409
}
404410

411+
public void addCircleMenuText(CircleMenuText circleMenuText) {
412+
addView(circleMenuText, getChildCount() -1);
413+
menuController.addCircleMenuText(circleMenuText);
414+
}
415+
416+
public void addText(TextView txt, RelativeLayout.LayoutParams params) {
417+
addView(txt, getChildCount() - 1, params);
418+
//menuController.addButton(menuButton);
419+
}
420+
405421
public boolean isMultipleCheck() {
406422
return multipleCheck;
407423
}
@@ -410,6 +426,7 @@ public void setMultipleCheck(boolean buttonConfimation) {
410426
this.multipleCheck = buttonConfimation;
411427
}
412428

429+
413430
public void setAlphaChecked(float alphaChecked) {
414431
this.alphaChecked = alphaChecked;
415432
}

0 commit comments

Comments
 (0)