From 8f1d60b5a34c196f98b8b073273795907be12ca4 Mon Sep 17 00:00:00 2001 From: Special Leung Date: Thu, 4 Dec 2014 23:14:03 +0800 Subject: [PATCH 1/2] Tired to support custom menus. --- ResideMenu/res/layout/residemenu.xml | 4 +- .../com/special/ResideMenu/ResideMenu.java | 54 +++++++++++-------- .../special/ResideMenuDemo/MenuActivity.java | 7 +++ 3 files changed, 42 insertions(+), 23 deletions(-) diff --git a/ResideMenu/res/layout/residemenu.xml b/ResideMenu/res/layout/residemenu.xml index 75caff7..7c6c8db 100644 --- a/ResideMenu/res/layout/residemenu.xml +++ b/ResideMenu/res/layout/residemenu.xml @@ -21,7 +21,7 @@ android:id="@+id/sv_left_menu" android:scrollbars="none" android:paddingLeft="30dp" - android:layout_width="150dp" + android:layout_width="wrap_content" android:layout_height="fill_parent"> 50) { - pressedState = PRESSED_MOVE_HORIZANTAL; + pressedState = PRESSED_MOVE_HORIZONTAL; ev.setAction(MotionEvent.ACTION_CANCEL); } - } else if(pressedState == PRESSED_MOVE_HORIZANTAL) { + } else if(pressedState == PRESSED_MOVE_HORIZONTAL) { if (currentActivityScaleX < 0.95) - showScrollViewMenu(scrollViewMenu); + showMenu(showingMenuView); float targetScale = getTargetScale(ev.getRawX()); ViewHelper.setScaleX(viewActivity, targetScale); ViewHelper.setScaleY(viewActivity, targetScale); ViewHelper.setScaleX(imageViewShadow, targetScale + shadowAdjustScaleX); ViewHelper.setScaleY(imageViewShadow, targetScale + shadowAdjustScaleY); - ViewHelper.setAlpha(scrollViewMenu, (1 - targetScale) * 2.0f); + ViewHelper.setAlpha(showingMenuView, (1 - targetScale) * 2.0f); lastRawX = ev.getRawX(); return true; @@ -542,7 +546,7 @@ public boolean dispatchTouchEvent(MotionEvent ev) { case MotionEvent.ACTION_UP: if (isInIgnoredView) break; - if (pressedState != PRESSED_MOVE_HORIZANTAL) break; + if (pressedState != PRESSED_MOVE_HORIZONTAL) break; pressedState = PRESSED_DONE; if (isOpened()){ @@ -592,15 +596,23 @@ public interface OnMenuListener{ public void closeMenu(); } - private void showScrollViewMenu(ScrollView scrollViewMenu){ - if (scrollViewMenu != null && scrollViewMenu.getParent() == null){ - addView(scrollViewMenu); + private void showMenu(View menuView){ + if (menuView != null && menuView.getParent() == null){ + addView(menuView); } } - private void hideScrollViewMenu(ScrollView scrollViewMenu){ - if (scrollViewMenu != null && scrollViewMenu.getParent() != null){ - removeView(scrollViewMenu); + private void hideMenu(View menuView){ + if (menuView != null && menuView.getParent() != null){ + removeView(menuView); } } + + public void setLeftMenuView(View menuView){ + this.leftMenuView = menuView; + } + + public void setRightMenuView(View menuView){ + this.rightMenuView = menuView; + } } diff --git a/ResideMenuDemo/src/com/special/ResideMenuDemo/MenuActivity.java b/ResideMenuDemo/src/com/special/ResideMenuDemo/MenuActivity.java index f80c925..0f01ca3 100644 --- a/ResideMenuDemo/src/com/special/ResideMenuDemo/MenuActivity.java +++ b/ResideMenuDemo/src/com/special/ResideMenuDemo/MenuActivity.java @@ -1,14 +1,18 @@ package com.special.ResideMenuDemo; +import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; +import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; +import android.widget.Button; import android.widget.Toast; import com.special.ResideMenu.ResideMenu; import com.special.ResideMenu.ResideMenuItem; +import com.special.ResideMenuDemo.R; public class MenuActivity extends FragmentActivity implements View.OnClickListener{ @@ -61,6 +65,9 @@ private void setUpMenu() { // You can disable a direction by setting -> // resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT); + Button btn = new Button(this); + resideMenu.setLeftMenuView(btn); + findViewById(R.id.title_bar_left_menu).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { From 31120be831fd4dfeb82c0c7db841c4d4bb2507a6 Mon Sep 17 00:00:00 2001 From: Special Leung Date: Thu, 4 Dec 2014 23:15:21 +0800 Subject: [PATCH 2/2] Add files. --- ResideMenuDemo/res/layout/left_menu.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 ResideMenuDemo/res/layout/left_menu.xml diff --git a/ResideMenuDemo/res/layout/left_menu.xml b/ResideMenuDemo/res/layout/left_menu.xml new file mode 100644 index 0000000..53b99ca --- /dev/null +++ b/ResideMenuDemo/res/layout/left_menu.xml @@ -0,0 +1,13 @@ + + + + +