抽象出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