天天看点

安卓框架——SlidingMenu使用技巧

原文转载http://blog.csdn.net/zwl5670/article/details/48274109

//设置侧滑菜单的位置,可选值LEFT , RIGHT ,LEFT_RIGHT(两边都有菜单时设置)  

menu.setMode(SlidingMenu.LEFT_RIGHT);  

//设置触摸屏幕的模式,可选只MARGIN ,CONTENT   

       menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);  

//根据dimension资源文件的ID来设置阴影的宽度  

       menu.setShadowWidthRes(R.dimen.shadow_width);  

//根据资源文件ID来设置滑动菜单的阴影效果  

       menu.setShadowDrawable(R.drawable.shadow);  

//这两个都是设置滑动菜单视图的宽度,二选一  

    //设置SlidingMenu离屏幕的偏移量  

       menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);  

       //设置宽度  

       menu.setBehindWidth()  

// 设置渐入渐出效果的值  

       menu.setFadeDegree(0.35f);  

//设置SlidingMenu与下方视图的移动的速度比,当为1时同时移动,取值0-1  

       menu.setBehindScrollScale(1.0f);  

//设置二级菜单的阴影效果  

       menu.setSecondaryShadowDrawable(R.drawable.shadow);  

//设置右边(二级)侧滑菜单  

       menu.setSecondaryMenu(R.layout.right_menu_frame);  

//为侧滑菜单设置布局  

       menu.setMenu(R.layout.leftmenu);  

//把滑动菜单添加进所有的Activity中,可选值SLIDING_CONTENT, SLIDING_WINDOW  

       menu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);  

public class MainActivity extends Activity{   

    @Override    

   protected void onCreate(BundlesavedInstanceState) {  

        super.onCreate(savedInstanceState);  

           setContentView(R.layout.activity_main);    

            SlidingMenu menu = new SlidingMenu(this);//初始化滑动菜单  

        menu.setMode(SlidingMenu.LEFT);//设置触摸屏幕的模式  

        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);  

        menu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影的宽度  

        menu.setShadowDrawable(R.drawable.shadow);//设置滑动菜单的阴影效果  

        // 设置滑动菜单视图的宽度  

        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);  

        // 设置渐入渐出效果的值  

        menu.setFadeDegree(0.35f);  

        /** 

         *SLIDING_WINDOW will include the Title/ActionBar in the content 

         *section of the SlidingMenu, while SLIDING_CONTENT does not. 

         */  

        // 把滑动菜单添加进所有的Activity中   

        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);  

        // 为侧滑菜单设置布局    

      menu.setMenu(R.layout.leftmenu);  

    }    

}    

public class MainActivity extends SlidingActivity  {    

    public void onCreate(Bundle savedInstanceState) {    

        super.onCreate(savedInstanceState);    

        setContentView(R.layout.activity_main);    

        setBehindContentView(R.layout.leftmenu);    

        // configure the SlidingMenu    

        SlidingMenu menu = getSlidingMenu();    

        menu.setMode(SlidingMenu.LEFT);    

        // 设置触摸屏幕的模式    

        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);    

        menu.setShadowWidthRes(R.dimen.shadow_width);    

        menu.setShadowDrawable(R.drawable.shadow);    

        // 设置滑动菜单视图的宽度    

        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);    

        // 设置渐入渐出效果的值    

        menu.setFadeDegree(0.35f);    

        /**  

         * SLIDING_WINDOW will include the Title/ActionBar in the content  

         * section of the SlidingMenu, while SLIDING_CONTENT does not.  

         */    

        // menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);    

        // menu.setMenu(R.layout.leftmenu);    

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    

    xmlns:tools="http://schemas.android.com/tools"    

    android:id="@+id/id_main_ly"    

    android:layout_width="match_parent"    

    android:layout_height="match_parent" >    

    <LinearLayout    

        android:layout_width="wrap_content"    

        android:layout_height="wrap_content"    

        android:layout_marginLeft="30dp"    

        android:layout_marginTop="30dp" >    

        <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu    

            xmlns:sliding="http://schemas.android.com/apk/res-auto"    

            android:id="@+id/slidingmenulayout"    

            android:layout_width="120dp"    

            android:layout_height="170dp"    

            android:background="#ffffffff"    

            sliding:behindOffset="0dp"    

            sliding:behindScrollScale="1"    

            sliding:fadeDegree="0.3"    

            sliding:fadeEnabled="true"    

            sliding:touchModeAbove="fullscreen"    

            sliding:viewAbove="@layout/pic" />    

    </LinearLayout>    

</RelativeLayout>    

pic布局:

<?xml version="1.0" encoding="utf-8"?>    

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"    

    android:layout_width="120dp"    

    android:layout_height="170dp"    

    android:src="@drawable/zhy" />    

MainActivity:

package com.zhy.zhy_slidemenu_demo03;    

import android.app.Activity;    

import android.os.Bundle;    

import android.view.View;    

import android.view.View.OnClickListener;    

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;    

public class MainActivity extends Activity    

{    

    private SlidingMenu mLeftMenu;    

    protected void onCreate(Bundle savedInstanceState)    

    {    

        mLeftMenu = (SlidingMenu) findViewById(R.id.slidingmenulayout);    

        // SlidingMenu menu = new SlidingMenu(this);    

        mLeftMenu.setMode(SlidingMenu.LEFT);    

        mLeftMenu.setShadowWidthRes(R.dimen.shadow_width);    

        mLeftMenu.setShadowDrawable(R.drawable.shadow);    

        mLeftMenu.setMenu(R.layout.leftmenu);    

        mLeftMenu.setOnClickListener(new OnClickListener()    

        {    

            @Override    

            public void onClick(View v)    

            {    

                if (mLeftMenu.isMenuShowing())    

                    mLeftMenu.toggle();    

            }    

        });    

· 

 Fragment leftMenuFragment = new MenuLeftFragment();    

·          setBehindContentView(R.layout.left_menu_frame);    

·          getSupportFragmentManager().beginTransaction()    

·                  .replace(R.id.id_left_menu_frame, leftMenuFragment).commit();    

·          SlidingMenu menu = getSlidingMenu();    

·          menu.setMode(SlidingMenu.LEFT_RIGHT);    

·          // 设置触摸屏幕的模式    

·          menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);   

package com.zhy.zhy_slidemenu_demo04;    

import java.util.Arrays;    

import java.util.List;    

import android.support.v4.app.Fragment;    

import android.view.LayoutInflater;    

import android.view.ViewGroup;    

import android.widget.ArrayAdapter;    

import android.widget.ListAdapter;    

import android.widget.ListView;    

public class MenuLeftFragment extends Fragment    

    private View mView;    

    private ListView mCategories;    

    private List<String> mDatas = Arrays    

            .asList("聊天", "发现", "通讯录", "朋友圈", "订阅号");    

    private ListAdapter mAdapter;    

    public View onCreateView(LayoutInflater inflater, ViewGroup container,    

            Bundle savedInstanceState)  {    

        if (mView == null)  {    

            initView(inflater, container);    

        }    

        return mView;    

    private void initView(LayoutInflater inflater, ViewGroup container)   {    

        mView = inflater.inflate(R.layout.left_menu, container, false);    

        mCategories = (ListView) mView    

                .findViewById(R.id.id_listview_categories);    

        mAdapter = new ArrayAdapter<String>(getActivity(),    

                android.R.layout.simple_list_item_1, mDatas);    

        mCategories.setAdapter(mAdapter);    

MenuRightFragment  

public class MenuRightFragment extends Fragment {    

            Bundle savedInstanceState) {    

        if(mView == null) {    

            mView = inflater.inflate(R.layout.right_menu, container, false);    

        return mView ;    

public class MainActivity extends SlidingFragmentActivity  {    

    private ViewPager mViewPager;    

    private FragmentPagerAdapter mAdapter;    

    private List<Fragment> mFragments = new ArrayList<Fragment>();    

    public void onCreate(Bundle savedInstanceState)  {    

        this.requestWindowFeature(Window.FEATURE_NO_TITLE);    

        // 初始化SlideMenu    

        initRightMenu();    

        // 初始化ViewPager    

        initViewPager();    

    private void initViewPager()   {    

        mViewPager = (ViewPager) findViewById(R.id.id_viewpager);    

        MainTab01 tab01 = new MainTab01();    

        MainTab02 tab02 = new MainTab02();    

        MainTab03 tab03 = new MainTab03();    

        mFragments.add(tab01);    

        mFragments.add(tab02);    

        mFragments.add(tab03);    

         * 初始化Adapter  

        mAdapter = new FragmentPagerAdapter(getSupportFragmentManager())  {    

            public int getCount()   {    

                return mFragments.size();    

            public Fragment getItem(int arg0)   {    

                return mFragments.get(arg0);    

        };    

        mViewPager.setAdapter(mAdapter);    

    private void initRightMenu()  {    

        Fragment leftMenuFragment = new MenuLeftFragment();    

        setBehindContentView(R.layout.left_menu_frame);    

        getSupportFragmentManager().beginTransaction()    

                .replace(R.id.id_left_menu_frame, leftMenuFragment).commit();    

        menu.setMode(SlidingMenu.LEFT_RIGHT);    

        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);    

        // menu.setBehindScrollScale(1.0f);    

        menu.setSecondaryShadowDrawable(R.drawable.shadow);    

        //设置右边(二级)侧滑菜单    

        menu.setSecondaryMenu(R.layout.right_menu_frame);    

        Fragment rightMenuFragment = new MenuRightFragment();    

                .replace(R.id.id_right_menu_frame, rightMenuFragment).commit();    

    public void showLeftMenu(View view)   {    

        getSlidingMenu().showMenu();    

    public void showRightMenu(View view)  {    

        getSlidingMenu().showSecondaryMenu();    

<a target="_blank"></a>

继续阅读