抽象出Share SDK里面的侧滑效果(二)

2014-11-24 02:50:40 · 作者: · 浏览: 2
setGroup(GROUP_1, ""); setGroup(GROUP_2, "更多"); SlidingMenuItem item = new SlidingMenuItem(); item.id = ITEM_1; item.body = "Item1"; setItem(GROUP_1, item); item = new SlidingMenuItem(); item.id = ITEM_2; item.body = "Item2"; setItem(GROUP_1, item); item = new SlidingMenuItem(); item.id = ITEM_3; item.body = "Item3"; setItem(GROUP_1, item); item = new SlidingMenuItem(); item.id = ITEM_4; item.body = "Item4"; setItem(GROUP_1, item); item = new SlidingMenuItem(); item.id = ITEM_5; item.body = "Item5"; setItem(GROUP_1, item); item = new SlidingMenuItem(); item.id = ITEM_6; item.body = "Item6"; setItem(GROUP_2, item); item = new SlidingMenuItem(); item.id = ITEM_7; item.body = "Item7"; setItem(GROUP_2, item); item = new SlidingMenuItem(); item.id = ITEM_8; item.body = "Item8"; setItem(GROUP_2, item); item = new SlidingMenuItem(); item.id = ITEM_9; item.body = "Item9"; setItem(GROUP_2, item); item = new SlidingMenuItem(); item.id = ITEM_10; item.body = "Item10"; setItem(GROUP_2, item); } /** * dp转换成px * * @param context * @param dip * @return */ private int dipToPx(Context context, int dip) { return (int) (dip * context.getResources().getDisplayMetrics().density + 0.5f); } /** * 当菜单项被点击的时候,此方法会被触发。用于处理菜单项的业务逻辑 并加载对应的页面主体。 */ public boolean onItemTrigger(SlidingMenuItem item) { if (curItem != null && curItem.equals(item) && item.group == GROUP_1) { return false; } curItem = item; switch (item.group) { case GROUP_1: { SlidingMenuPage page = null; switch (item.id) { case ITEM_1: { page = new Page1(menu); } break; case ITEM_2: { page = new Page2(menu); } break; case ITEM_3: { Toast.makeText(menu.getContext(), "3", Toast.LENGTH_SHORT) .show(); } break; case ITEM_4: { Toast.makeText(menu.getContext(), "4", Toast.LENGTH_SHORT) .show(); } break; case ITEM_5: { Toast.makeText(menu.getContext(), "5", Toast.LENGTH_SHORT) .show(); } break; } if (page != null) { menu.setBodyView(page.getPage()); } } break; case GROUP_2: { switch (item.id) { case ITEM_6: { Toast.makeText(menu.getContext(), "6", Toast.LENGTH_SHORT) .show(); } break; case ITEM_7: { Toast.makeText(menu.getContext(), "7", Toast.LENGTH_SHORT) .show(); } break; case ITEM_8: { Toast.makeText(menu.getContext(), "8", Toast.LENGTH_SHORT) .show(); } break; case ITEM_9: { Toast.makeText(menu.getContext(), "9", Toast.LENGTH_SHORT) .show(); } break; case ITEM_10: { Toast.makeText(menu.getContext(), "10", Toast.LENGTH_SHORT) .show(); } break; } break; } } return false; } /** * 造“组”标题 */ @Override public View getGroupView(int position, ViewGroup menu) { String text = getTitle(position); if (text == null || text.length() <= 0) { return new LinearLayout(menu.getContext()); } TextView tvTitle = new TextView(menu.getContext()); tvTitle.setBackgroundResource(R.drawable.sidebar_titlt_back); int dp_13 = dipToPx(menu.getContext(), 13); int dp_5 = dipToPx(menu.getContext(), 3); tvTitle.setPadding(dp_13, dp_5, dp_13, dp_5); tvTitle.setText(text); tvTitle.setGravity(Gravity.CENTER_VERTICAL); tvTitle.setTextColor(0xff999999); tvTitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13); tvTitle.setLayoutParams(new ScrollView.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); return tvTitle; } /** * 造“菜单项” */ @Override public View getItemView(SlidingMenuItem item, ViewGroup menu) { TextView tvItem = new TextView(menu.getContext()); tvItem.setGravity(Gravity.CENTER_VERTICAL); tvItem.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); tvItem.setTextColor(tvItem.getResources().getColorStateList( R.color.normal_gray_pressed_white)); tvItem.setText(String.valueOf(item.body)); tvItem.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.pointer, 0); int dp_13 = dipToPx(menu.getContext(), 13); tvItem.setCompoundDrawablePadding(dp_13); tvItem.setPadding(dp_13, 0, dp_13, 0); int dp_52 = dipToPx(menu.getContext(), 52); tvItem.setLayoutParams(new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, dp_52)); return tvItem; } }

Page1:

package com.home.testslidingmenu;

import m.framework.ui.widget.slidingmenu.SlidingMenu;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;

publi