侧滑菜单——SlidingMenu
来源:互联网 发布:媒体矩阵 是什么意思 编辑:程序博客网 时间:2024/06/05 06:03
通过这篇文章您将学习到如下图中的UI效果(开发环境:AndroidStudio 2.2):
额额,这个动态图有点魔性
简单说一下效果就是使用 SlidingMenu 做了一个侧滑菜单
打开(关闭)的方式有两种,一种是向右(左)滑动打开(关闭),一种是点击按钮打开(关闭)
首先,我们需要到 GitHub 下载 SlidingMenu 所用到的 library,下载地址
解压后我们会得到:
这里我们只需要使用 library 文件夹
然后,我们需要将下载好的 library 导入到项目中
在导入时我们要注意按如下步骤操作:
File —> New —> Import Module —> 选择 library 文件夹 —> Finish
等待编译器编译完成,若出现错误提示,请参考 SlidingMenu导入问题
然后我们将library添加到项目中,注意按如下步骤操作:
按 Ctrl + Shift + Alt + S —> app —> Dependencies —> + —> Module dependency —> 选中library —> OK
然后,我们就可以开始编写代码了:
先理一下思路:
1. 创建SlidingMenu对象
2. 为SlidingMneu对象设置属性
3. 为SlidingMneu对象添加监听事件
4. 增加一个按钮为其添加打开(关闭)菜单的监听事件
首先,创建 SlidingMneu 对象,使用 new 来创建的
private SlidingMenu menu;menu = new SlidingMenu(MainActivity.this);//创建SlidingMenu对象
然后,为 Slidingmenu 添加各种属性,包括:侧滑栏的位置、触摸屏幕的模式、根据资源文件ID来设置滑动菜单的阴影效果、滑动菜单式图的宽度、渐入渐出效果的值、为滑动菜单设置布局
//设置侧滑栏的位置menu.setMode(SlidingMenu.LEFT);//设置触摸屏幕的模式 menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setShadowWidthRes(R.dimen.shadow_width);//根据资源文件ID来设置滑动菜单的阴影效果menu.setShadowDrawable(R.drawable.shadow);//设置滑动菜单式图的宽度menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//设置渐入渐出效果的值menu.setFadeDegree(0.35f);//把滑动菜单添加进所有的Activity中menu.attachToActivity(MainActivity.this, SlidingMenu.SLIDING_CONTENT);//为滑动菜单设置布局menu.setMenu(R.layout.leftmenu);
leftmenu 布局就是菜单的布局,这里我们只添加了一个 TextView
然后,我们为SlidingMneu对象添加监听事件:
/*** 打开的监听事件*/menu.setOnOpenListener(new SlidingMenu.OnOpenListener() { @Override public void onOpen() { mMenuBtn.setText("关闭"); mMenuBtn.setBackgroundColor(Color.YELLOW); Toast.makeText(MainActivity.this, "打开了!", Toast.LENGTH_SHORT).show(); }});/***关闭的监听事件 */menu.setOnCloseListener(new SlidingMenu.OnCloseListener() { @Override public void onClose() { mMenuBtn.setText("打开"); mMenuBtn.setBackgroundColor(Color.GREEN); Toast.makeText(MainActivity.this, "关上了!", Toast.LENGTH_SHORT).show(); }});
然后我们再添加一个按钮,为按钮添加监听事件:
mMenuBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { menu.toggle(); }});
没错,只需要一个方法 toggle(),在菜单关闭时执行该方法菜单会打开,反之亦然。
好了,这样我们上文中的案例效果就实现了!赶紧运用到自己的项目去吧!
完整代码:
package win.yuanhongbao.slidingmenudemo;import android.graphics.Color;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;public class MainActivity extends AppCompatActivity { private SlidingMenu menu; private Button mMenuBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mMenuBtn = (Button) findViewById(R.id.btn_menu); mMenuBtn.setText("打开"); mMenuBtn.setBackgroundColor(Color.GREEN); //创建SlidingMenu对象 menu = new SlidingMenu(MainActivity.this); //设置侧滑栏的位置 menu.setMode(SlidingMenu.LEFT); //设置触摸屏幕的模式 menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setShadowWidthRes(R.dimen.shadow_width); //根据资源文件ID来设置滑动菜单的阴影效果 menu.setShadowDrawable(R.drawable.shadow); //设置滑动菜单式图的宽度 menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); //设置渐入渐出效果的值 menu.setFadeDegree(0.35f); //把滑动菜单添加进所有的Activity中 menu.attachToActivity(MainActivity.this, SlidingMenu.SLIDING_CONTENT); //为滑动菜单设置布局 menu.setMenu(R.layout.leftmenu); /** *打开的监听事件 */ menu.setOnOpenListener(new SlidingMenu.OnOpenListener() { @Override public void onOpen() { mMenuBtn.setText("关闭"); mMenuBtn.setBackgroundColor(Color.YELLOW); Toast.makeText(MainActivity.this, "打开了!", Toast.LENGTH_SHORT).show(); } }); /** *关闭的监听事件 */ menu.setOnCloseListener(new SlidingMenu.OnCloseListener() { @Override public void onClose() { mMenuBtn.setText("打开"); mMenuBtn.setBackgroundColor(Color.GREEN); Toast.makeText(MainActivity.this, "关上了!", Toast.LENGTH_SHORT).show(); } }); /** *按钮的监听事件 */ mMenuBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { menu.toggle(); } }); }}
源码下载地址
- 侧滑菜单——SlidingMenu
- SlidingMenu(侧滑菜单)
- SlidingMenu侧滑菜单
- SlidingMenu侧滑菜单
- SlidingMenu侧滑菜单
- SlidingMenu侧滑菜单
- SlidingMenu侧滑菜单
- SlidingMenu侧滑菜单
- SlidingMenu 侧滑菜单
- SlidingMenu侧滑菜单
- SlidingMenu 侧滑菜单
- Slidingmenu侧滑菜单
- SlidingMenu侧滑菜单
- SlidingMenu 侧滑菜单
- 侧滑菜单slidingMenu
- SlidingMenu 侧滑菜单
- android随笔21——SlidingMenu侧滑菜单
- Android侧滑菜单——SlidingMenu详解使用
- 紫书章六例题九 天平 UVA 839(更新二叉树的节点上的值)
- 接口与工厂
- POJ-1222-尺取法,开关灯
- bits/stdc++.h
- 关闭Hadoop时no namenode to stop异常
- 侧滑菜单——SlidingMenu
- 安卓6.0通过URI进行图片分享问题总结
- KMP常用算法模板
- oracle创建存储过程和定时任务
- 题目1081:递推数列
- chmod修改权限
- 图像压缩编码
- 设置页面中input check复选框为单选功能
- PAT天坑之1074. Reversing Linked List (25)