TMH gives you cool Android library tutorials for development and designing also. Today library is for Menu UI named Android CircleMenu which is a simple, elegant menu with a circular layout.

Setup : Android CircleMenu library
Add this to your app build.gradle:
compile 'com.github.imangazalievm:circlemenu:1.0.3'
Usage
Add to your layout xml-file:
<com.imangazaliev.circlemenu.CircleMenu
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/circleMenu"
>
<com.imangazaliev.circlemenu.CircleMenuButton
android:id="@+id/favorite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:colorNormal="#2196F3"
app:colorPressed="#1E88E5"
app:icon="@drawable/ic_favorite"
/>
<com.imangazaliev.circlemenu.CircleMenuButton
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:colorNormal="#4CAF50"
app:colorPressed="#43A047"
app:icon="@drawable/ic_search"/>
<com.imangazaliev.circlemenu.CircleMenuButton
android:id="@+id/alert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:colorNormal="#F44336"
app:colorPressed="#E53935"
app:icon="@drawable/ic_alert"/>
</com.imangazaliev.circlemenu.CircleMenu>
Set OnItemClickListener for handling menu items clicks:
CircleMenu circleMenu = (CircleMenu) findViewById(R.id.circleMenu);
circleMenu.setOnItemClickListener(new CircleMenu.OnItemClickListener() {
@Override
public void onItemClick(MenuButton menuButton) {
}
});
Set OnStateUpdateListener for handling open/close actions
circleMenu.setStateUpdateListener(new CircleMenu.OnStateUpdateListener() {
@Override
public void onMenuExpanded() {
}
@Override
public void onMenuCollapsed() {
}
});
Ex code
package com.imangazaliev.circlemenu.sample;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;
import com.imangazaliev.circlemenu.CircleMenu;
import com.imangazaliev.circlemenu.CircleMenuButton;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CircleMenu circleMenu = (CircleMenu) findViewById(R.id.circleMenu);
circleMenu.setOnItemClickListener(new CircleMenu.OnItemClickListener() {
@Override
public void onItemClick(CircleMenuButton menuButton) {
switch (menuButton.getId()) {
case R.id.favorite:
showMessage("Favorite");
break;
case R.id.search:
showMessage("Search");
break;
case R.id.alert:
showMessage("Alert");
break;
case R.id.place:
showMessage("Place");
break;
case R.id.edit:
showMessage("Edit");
break;
}
}
});
circleMenu.setStateUpdateListener(new CircleMenu.OnStateUpdateListener() {
@Override
public void onMenuExpanded() {
Log.d("CircleMenuStatus", "Expanded");
}
@Override
public void onMenuCollapsed() {
Log.d("CircleMenuStatus", "Collapsed");
}
});
}
private void showMessage(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
Hope you like this library and please comment us with your suggestion.

Share your thoughts