zoukankan      html  css  js  c++  java
  • Android 侧滑菜单的简单实现(SlidingMenu)

    在我还没有学习Android的时候就用过侧滑菜单的APP,当时第一个感觉是:哇塞,这效果不错!当然,现在自己都已经学Android了,这效果当然也要做出来啊~

    SlidingMenu是一种比较新的设置界面或配置界面的效果(我觉得已经不新了耶~),在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作。很多优秀的应用都采用了这种界面方案,像facebook、人人网、everynote、Google+等等。效果如下图:

     

    其实网上已经有很多写SlidingMenu使用的文章了。不过,别人始终是别人的,下面就来实现它吧。

    SlidingMenu是一个在GitHub上的一个开源库,因此先访问GitHub吧。

    SlidingMenu地址 : https://github.com/jfeinstein10/SlidingMenu

     打开网址后的界面如下:

     

    点击界面右下角的“Download ZIP”,即可下载该开源库。

    需要注意的是,仅仅下载该开源库是不够的,通过阅读该网页可知,SlidingMenu开源库依赖于另一个开源库ActionBarSherlock,因此,还需要下载开源库ActionBarSherlock。

    点击界面中带有超链接的“ActionBarSherlock”,跳转到网址为:http://actionbarsherlock.com/的网页,其界面如下:

    点击图中红色箭头指向的“Zip”即可下载所需的开源库ActionBarSherlock。

    将这两个开源库下载下来后都是压缩文件,因此需要解压:

    OK,准备工作到此结束。

    开始敲代码了……

    现将这两个开源库添加到eclipse中,需要注意选择导入的目录(因为解压后的文件有很多,并不是每一个都需要导入)。如下图:

    成功导入开源库后,从习惯上考虑,将它们的名称分别改为“SlidingMenulibrary”和“ActionBarSherlock”。

    如图:

    现在新建一个Android工程,选择系统为Android4.0,工程命名为“test_SlidingMenu”

    接下来,把两个开源库添加到工程中。单击项目工程名称,点击右键,选择“Properties”。如图:

    (在红色圈园处,添加这两个开源库)

    此时,可能会出现如下错误:

    不要慌张,出现这个错误是因为这两个开源库中使用的suppor-v4.jar包和刚才新建的工程中的suppor-v4.jar包版本不同导致的。

    那么,就把工程中的suppor-v4.jar包复制到这两个开源库中,并替换调这两个开源库中的suppor-v4.jar包。这样,三个的suppor-v4.jar包都是相同的了。

     接下来剩下的就是代码的问题了。

    首先是新建一个布局文件,名为slidingmenu.xml:(我们在侧滑菜单中添加了一个按钮)

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ff999999"
        android:orientation="vertical" >
    
        <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
            android:id="@+id/SlidingMenu"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
            <Button 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="00000"/>
        </com.jeremyfeinstein.slidingmenu.lib.SlidingMenu>
    
    </LinearLayout>

    另外,在dimens.xml中添加一句代码:

    <dimen name="slidingmenu_offset">200dp</dimen>

    这句代码中的200dp的作用是设置侧滑菜单拉伸的宽度。

    然后就是Activity中的代码:

    (代码比较简单,就直接上代码了哈)

    public class MainActivity extends Activity {
        private SlidingMenu slidingmenu;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            slidingmenu = new SlidingMenu(this);
            slidingmenu.setMode(SlidingMenu.LEFT);// 左边的侧滑菜单
            slidingmenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//设置侧滑菜单的拉伸宽度
            slidingmenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 全屏触摸有效
            slidingmenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);// 附加到Activity中
            slidingmenu.setMenu(R.layout.slidingmenu);//设置侧滑菜单界面
        }
    
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            switch (keyCode) {
            case KeyEvent.KEYCODE_MENU:
                slidingmenu.toggle(true);//设置点击菜单按钮产生动画效果。
                break;
    
            default:
                break;
            }
            return super.onKeyDown(keyCode, event);
        }
    
    }

    运行效果如下图:

    DEMO下载:http://download.csdn.net/detail/af74776/8074319

  • 相关阅读:
    SSAS没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)) 解决办法
    Javascript中暂停功能的实现
    【转】JQuery ajax json 实例
    SqlDataAdapter有关InsertCommand,UpdateCommand,DeleteCommand 实例
    绑定数组对象DataTable.Select返回值DataRow[]
    SQL SERVER 联想函数重写
    JQuery Dialog(转)
    温习C 文件操作
    轻松掌握Windows窗体间的数据交互
    反射方法调用时的一个错误:参数计数不匹配( parameter count mismatch )
  • 原文地址:https://www.cnblogs.com/scetopcsa/p/4046546.html
Copyright © 2011-2022 走看看