Android知识点四:侧栏滑动效果

来源:互联网 发布:上海希格斯网络 金融 编辑:程序博客网 时间:2024/06/05 03:44

    首先准备工作:mframework.jar包(SlidingMenu)

    MainActivity.java

   

private SlidingMenu menu;private MianAdapter mainAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);menu = new SlidingMenu(this);menu.setMenuItemBackground(R.drawable.sliding_menu_item_down, R.drawable.sliding_menu_item_release);menu.setMenuBackground(R.drawable.sliding_menu_background);// menu.setTtleHeight(Common.formatDipToPx(this, 44));menu.setBodyBackground(R.drawable.sliding_menu_body_background);mainAdapter = new MianAdapter(menu);menu.setAdapter(mainAdapter);setContentView(menu);menu.triggerItem(MianAdapter.GROUP_DEMO, MianAdapter.TOP_MENU);}
  Title类 公用titlebar

 

public abstract class SlidingMenuPage implements Callback {protected SlidingMenu menu;protected Handler handler;private View pageView;private LinearLayout mStandardLayout;private TextView mTitleTv;private ImageView mLeftImageView;private ImageView mRightImageView;public SlidingMenuPage(SlidingMenu _menu) {handler = new Handler(this);this.menu = _menu;pageView=LayoutInflater.from(menu.getContext()).inflate(R.layout.baseview, null);mStandardLayout = (LinearLayout) pageView.findViewById(R.id.standardview_abstract);mTitleTv = (TextView) pageView.findViewById(R.id.TitleText_Abstract);mLeftImageView = (ImageView) pageView.findViewById(R.id.LeftText_Abstract);mRightImageView= (ImageView) pageView.findViewById(R.id.RightText_Abstract);mLeftImageView.setImageResource(R.drawable.ico_menu_default);mLeftImageView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {if (menu.isMenuShown()) {menu.hideMenu();}else {menu.showMenu();}}});View v = initPage();LinearLayout.LayoutParams params = null;if (Build.VERSION.SDK_INT > 7)params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);elseparams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);params.setMargins(0, 0, 0, 0);mStandardLayout.addView(v, params);}protected abstract View initPage();/** 获取页面的View实例 */public View getPage() {return pageView;}public boolean handleMessage(Message msg) {return false;}public void onActivityResult(int requestCode, int resultCode, Intent data){}public final void setTitle(CharSequence leftText) {mTitleTv.setText(leftText);}public final void setRightImageView(int resId,OnClickListener l) {mRightImageView.setVisibility(View.VISIBLE);mRightImageView.setImageResource(resId);mRightImageView.setOnClickListener(l);}public final void setLeftImageView(int resId) {mLeftImageView.setVisibility(View.VISIBLE);mLeftImageView.setImageResource(resId);}}
  侧边MianAdapter.java需继承MenuAdapter

 

public class MianAdapter extends MenuAdapter {public static final int GROUP_DEMO = 1;public static final int TOP_MENU = 2;// 信息1private static final int BILL_MENU = 3;// 信息2private static final int MONEY_MENU = 4;// 信息3private SlidingMenu menu;private SlidingMenuItem curItem;private SlidingMenuPage page = null;public MianAdapter(SlidingMenu menu) {super(menu);this.menu = menu;initData();}@Overridepublic View getGroupView(int arg0, ViewGroup arg1) {View view = LayoutInflater.from(menu.getContext()).inflate(R.layout.slidingmenu_top_item, null);TextView tvItem = (TextView) view.findViewById(R.id.item_text);ImageView ivSet = (ImageView) view.findViewById(R.id.img_set);ImageView ivFace = (ImageView) view.findViewById(R.id.img_face);return view;}@Overridepublic View getItemView(SlidingMenuItem arg0, ViewGroup arg1) {View view = LayoutInflater.from(menu.getContext()).inflate(R.layout.slidingmenu_item, null);TextView tvItem = (TextView) view.findViewById(R.id.item_text);tvItem.setText(String.valueOf(arg0.body));return view;}void initData() {setGroup(GROUP_DEMO, "");SlidingMenuItem item = new SlidingMenuItem();item.id = TOP_MENU;item.body = menu.getResources().getString(R.string.top_menu);setItem(GROUP_DEMO, item);item = new SlidingMenuItem();item.id = BILL_MENU;item.body = menu.getResources().getString(R.string.bill_menu);setItem(GROUP_DEMO, item);item = new SlidingMenuItem();item.id = MONEY_MENU;item.body = menu.getResources().getString(R.string.money_menu);setItem(GROUP_DEMO, item);}public SlidingMenuPage getCurrentSlidingMenuPage(){return page;}// 可添加页面链接@Overridepublic boolean onItemTrigger(SlidingMenuItem item) {if (curItem != null && curItem.equals(item) && item.group == GROUP_DEMO) {return false;}curItem = item;switch (item.group) {case GROUP_DEMO: {switch (item.id) {case TOP_MENU: {page = new TopPage(menu);}break;case BILL_MENU: {page = new BillPage(menu);}break;case MONEY_MENU: {page = new MoneyPage(menu);}break;}if (page != null) {menu.setBodyView(page.getPage());}}break;}return super.onItemTrigger(item);}}
  公用titlebar布局(baseview.xml)

 

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent" >    <LinearLayout        android:id="@+id/standardview_abstract"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_below="@+id/titlelayout_abstract"        android:layout_marginTop="-2dip"        android:background="@drawable/sliding_menu_body_background"        android:orientation="vertical" >    </LinearLayout>    <LinearLayout        android:id="@+id/titlelayout_abstract"        android:layout_width="fill_parent"        android:layout_height="50dip"        android:background="@drawable/base_titlebar"        android:orientation="horizontal" >        <RelativeLayout            android:layout_width="fill_parent"            android:layout_height="fill_parent" >            <LinearLayout                android:layout_width="wrap_content"                android:layout_height="match_parent"                android:layout_alignParentLeft="true"                android:layout_marginLeft="5dip"                android:gravity="center_vertical"                android:orientation="horizontal" >                <ImageView                    android:id="@+id/LeftText_Abstract"                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:scaleType="center"                    android:background="@drawable/baseview_topbtn_selector"                    android:src="@drawable/ico_menu_default" />                <Button                    android:id="@+id/LeftText_Abstract_btn"                    android:layout_width="55dip"                    android:layout_height="fill_parent"                    android:gravity="center"                    android:textSize="16sp"                    android:visibility="gone" />            </LinearLayout>            <TextView                android:id="@+id/TitleText_Abstract"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_centerInParent="true"                android:gravity="center"                android:textColor="@color/white"                android:textSize="20sp" />            <LinearLayout                android:layout_width="wrap_content"                android:layout_height="match_parent"                android:layout_alignParentRight="true"                android:layout_marginRight="5dip"                android:gravity="center_vertical"                android:orientation="horizontal" >                <ImageView                    android:id="@+id/RightText_Abstract"                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:scaleType="center"                    android:src="@drawable/ico_back_default"                     android:background="@drawable/baseview_topbtn_selector"                    android:visibility="gone" />                <Button                    android:id="@+id/RightText_Abstract_btn"                    android:layout_width="55dip"                    android:layout_height="fill_parent"                    android:gravity="center"                    android:textSize="16sp"                    android:visibility="gone" />            </LinearLayout>        </RelativeLayout>    </LinearLayout>    <RelativeLayout        android:id="@+id/CoverView_Abstract"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:visibility="gone" >    </RelativeLayout></RelativeLayout>

  侧边Group布局(slidingmenu_top_item.xml)
  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@drawable/bg_titlebar03"    android:orientation="horizontal"    android:paddingLeft="10dip"    android:paddingRight="10dip" >    <ImageView        android:id="@+id/img_face"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_vertical"        android:src="@drawable/bg_face" />    <TextView        android:id="@+id/text_name"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_gravity="center_vertical"        android:layout_marginLeft="8dip"        android:layout_weight="1"        android:text="会说话的猫"        android:textColor="@color/slidingmenu_text_color"        android:textSize="16sp" />        <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/ico_line" />    <ImageView        android:id="@+id/img_set"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_vertical"        android:layout_marginLeft="10dip"        android:src="@drawable/ico_set_selector" /></LinearLayout>

 侧边item布局(slidingmenu_item.xml)

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@drawable/sliding_menu_item_release"    android:orientation="horizontal"    android:padding="10dip" >    <TextView        android:id="@+id/item_text"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="信息1"        android:textSize="16sp"        android:layout_weight="1"        android:textColor="@color/slidingmenu_text_color" />        <ImageView android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_vertical"        android:src="@drawable/ico_arrows_selector"/></LinearLayout>


   jar包下载:mframework.jar

0 0
原创粉丝点击