diff --git a/README.md b/README.md index 2e9b3e7..f928253 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,11 @@ An android custom view which allows you to have a arc style-menu on your pages a It inserts a FAB menu on the bottom left or bottom right of the screen and allows you to control the menu options. -It also implements the CoordinatorLayout Behaviour to work with Snackbar +It also implements the CoordinatorLayout Behaviour to work with Snackbar. +Change-logs +------- +Check out the [Release Notes](https://github.com/saurabharora90/MaterialArcMenu/releases "Releases") for the change-logs in each release. Demo ------- ![Arc Menu](https://raw.githubusercontent.com/saurabharora90/MaterialArcMenu/develop/assets/show_menu.gif) @@ -20,10 +23,10 @@ Usage Add a dependency to your `build.gradle`: dependencies { - compile 'com.sa90.materialarcmenu:library:1.2' + compile 'com.sa90.materialarcmenu:library:1.3' } -and include the `com.sa90.materialarcmenu.ArcMenu` as a viewgroup (with the sub-menu's as child) in your layout. +and include the `com.sa90.materialarcmenu.ArcMenu` as a viewgroup (with the sub-menu's as child) in your layout. The menu (floating action button) has a margin of 16dp added to it by default to follow the material design guidelines. Example: @@ -65,7 +67,6 @@ The sub-menu's (child) can be anything. Here is an ImageButton example: android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|start" - android:layout_margin="@dimen/fab_margin" app:menu_color="@color/colorPrimaryDark" app:menu_radius="200dp" app:menu_ripple_color="@color/darker_gray" diff --git a/library/build.gradle b/library/build.gradle index dd92036..32f5463 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -8,7 +8,7 @@ android { minSdkVersion 15 targetSdkVersion 23 versionCode 1 - versionName "1.2" + versionName "1.3" } buildTypes { release { @@ -32,7 +32,7 @@ ext { artifact = 'library' libraryDescription = 'An android custom view which allows you to have a arc style-menu on your pages' - libraryVersion = '1.2' + libraryVersion = '1.3' developerId = 'saurabharora90' developerName = 'Saurabh Arora' diff --git a/library/src/main/java/com/sa90/materialarcmenu/ArcMenu.java b/library/src/main/java/com/sa90/materialarcmenu/ArcMenu.java index 659c599..0862299 100644 --- a/library/src/main/java/com/sa90/materialarcmenu/ArcMenu.java +++ b/library/src/main/java/com/sa90/materialarcmenu/ArcMenu.java @@ -16,8 +16,8 @@ import android.util.AttributeSet; import android.util.TypedValue; import android.view.View; -import android.view.ViewGroup; import android.view.animation.AccelerateInterpolator; +import android.widget.FrameLayout; import java.util.ArrayList; import java.util.List; @@ -26,7 +26,7 @@ * Created by Saurabh on 14/12/15. */ @CoordinatorLayout.DefaultBehavior(MoveUpwardBehaviour.class) -public class ArcMenu extends ViewGroup { +public class ArcMenu extends FrameLayout { private static final double POSITIVE_QUADRANT = 90; private static final double NEGATIVE_QUADRANT = -90; @@ -38,7 +38,8 @@ public class ArcMenu extends ViewGroup { ColorStateList mColorStateList; int mRippleColor; long mAnimationTime; - float mCurrentRadius, mFinalRadius, mElevation, mMargin; + float mCurrentRadius, mFinalRadius, mElevation; + int menuMargin; boolean mIsOpened = false; double mQuadrantAngle; MenuSideEnum mMenuSideEnum; @@ -84,6 +85,8 @@ private void init(TypedArray attr) { mQuadrantAngle = POSITIVE_QUADRANT; else mQuadrantAngle = NEGATIVE_QUADRANT; + + menuMargin = resources.getDimensionPixelSize(R.dimen.fab_margin); } /** @@ -158,13 +161,13 @@ private void layoutChildrenArc() { //TODO: work on fixing this private void layoutMenu() { if(mMenuSideEnum == MenuSideEnum.ARC_RIGHT) { - cx = 0; - cy = getMeasuredHeight() - fabMenu.getMeasuredHeight(); + cx = 0 + menuMargin; + cy = getMeasuredHeight() - fabMenu.getMeasuredHeight() - menuMargin; } else { - cx = getMeasuredWidth() - fabMenu.getMeasuredWidth(); - cy = getMeasuredHeight() - fabMenu.getMeasuredHeight(); + cx = getMeasuredWidth() - fabMenu.getMeasuredWidth() - menuMargin; + cy = getMeasuredHeight() - fabMenu.getMeasuredHeight() - menuMargin; } fabMenu.layout(cx, cy, cx + fabMenu.getMeasuredWidth(), cy + fabMenu.getMeasuredHeight()); @@ -206,6 +209,8 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { height+=(radius + maxHeight); } + width+= menuMargin; + height+= menuMargin; setMeasuredDimension(width, height); } diff --git a/library/src/main/res/values/dimens.xml b/library/src/main/res/values/dimens.xml index 1c65546..f9e35d3 100644 --- a/library/src/main/res/values/dimens.xml +++ b/library/src/main/res/values/dimens.xml @@ -1,4 +1,5 @@ 150dp 6dp + 16dp diff --git a/samples/src/main/res/layout/activity_animation_time.xml b/samples/src/main/res/layout/activity_animation_time.xml index b29369f..85ff5d3 100644 --- a/samples/src/main/res/layout/activity_animation_time.xml +++ b/samples/src/main/res/layout/activity_animation_time.xml @@ -55,7 +55,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" - android:layout_margin="@dimen/fab_margin" app:menu_scr="@android:drawable/ic_dialog_dialer" app:menu_open="arc_left"> diff --git a/samples/src/main/res/layout/activity_image_button.xml b/samples/src/main/res/layout/activity_image_button.xml index e9011d1..d2d3d2f 100644 --- a/samples/src/main/res/layout/activity_image_button.xml +++ b/samples/src/main/res/layout/activity_image_button.xml @@ -26,7 +26,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|start" - android:layout_margin="@dimen/fab_margin" app:menu_color="@color/colorPrimaryDark" app:menu_radius="200dp" app:menu_ripple_color="@android:color/darker_gray" diff --git a/samples/src/main/res/layout/activity_main.xml b/samples/src/main/res/layout/activity_main.xml index 9ca3917..3283cc1 100644 --- a/samples/src/main/res/layout/activity_main.xml +++ b/samples/src/main/res/layout/activity_main.xml @@ -52,7 +52,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" - android:layout_margin="@dimen/fab_margin" app:menu_open="arc_left" app:menu_scr="@android:drawable/ic_dialog_dialer">