Android UI之SlidingMenu侧滑菜单

SlidingMenu侧滑菜单是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作。很多优秀的应用都采用了这种界面方案,像facebook、人人网、everynote、Google+、网易新闻、知乎日报、有道云笔记等等。

现在这种交互方式越来越流行了,虽然这种交互方式可以通过自定义组件的方式来实现,但是用第三方开源库更简单。地址: https://github.com/jfeinstein10/SlidingMenu.git

侧滑菜单实现原理:
在一个Activity的布局中需要有两部分,一个是菜单(menu)的布局,一个是内容(content)的布局。两个布局横向排列,菜单布局在左,内容布局在右。初始化的时候将菜单布局向左偏移,以至于能够完全隐藏,这样内容布局就会完全显示在Activity中。然后通过监听手指滑动事件,来改变菜单布局的左偏移距离,从而控制菜单布局的显示和隐藏。

实例:
运行效果:
Android UI之SlidingMenu侧滑菜单_第1张图片

要想能够实现SlidingMenu的效果,首先必须要将它作为libary导入到你的工程,目录结构如下:
Android UI之SlidingMenu侧滑菜单_第2张图片


代码清单:
主界面内容布局:activity_main.xml


    

侧滑菜单布局:slidingmenu.xml


    



尺寸资源文件:dimens.xml


    
    16dp
    16dp

    150dp
    15dp


shadow.xml资源 这个资源文件是用来实现阴影效果的图形,使用了渐变的绘图效果。



    


Java源代码文件:MainActivity.java
package com.rainsong.slidingmenudemo;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 实例化滑动菜单对象
        SlidingMenu menu = new SlidingMenu(this);
        // 设置为左滑菜单 
        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);
        // 附加在Activity上
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        // 设置滑动菜单的布局
        menu.setMenu(R.layout.slidingmenu);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

示例源码下载地址SlidingMenuDemo


你可能感兴趣的:(Android应用,Android,Android应用开发基础)