Android——Slidingmenu互挤抽屉(QQ)应用
来源:互联网 发布:80端口 编辑:程序博客网 时间:2024/05/16 01:34
相比较之前DrawerLayout的抽屉效果,这个SlidingMenu显得更加的简单,效果也更
为好看,不会遮挡主内容区域。
Slidingmenu是单标签,不能添加其他控件,也就意味着不能作为Fragment的窝。。不
能与Fragment配合。
Slidingmenu是独立于Activity的,设置menu之后与Activity绑定即可。
需要导入第三方library,产生依赖,项目中属性中设置。
这个可以从gitHub中下载,只需要里面的library,在项目的properties设置
SlidingMenu下载
add加入导入到项目中的library,只需要这个。前提需要将library导入项目。
SlidingMenu的使用:
1、创建SlidingMenu对象。
SlidingMenu menu=new SlidingMenu(this);
2、设置menu的模式(左右抽屉)
menu.setMode(SlidingMenu.LEFT);
3、设置menu的作用区域
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);全屏作用。
4、设置抽屉展开的大小
menu.setBehindWidth();
5、添加抽屉布局
menu.setMenu(v)
6、将menu附着在Activity上面。
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
这里将选中content即可。
这里打开抽屉和关闭抽屉有两个方法:
menu.showContent();关闭抽屉。
menu.showMenu();打开抽屉。
来做一个项目,通过按钮或者左右拖动来打开抽屉,通过抽屉中的按钮来改变主内容区
域的颜色。
Activity的xml只有一个button,设置监听打开抽屉。
mainactivity:
package com.example.slidingtest;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;import android.animation.ObjectAnimator;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.util.DisplayMetrics;import android.view.Display;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.RadioGroup;import android.widget.RadioGroup.OnCheckedChangeListener;import android.widget.RelativeLayout;public class MainActivity extends Activity implements OnCheckedChangeListener { private SlidingMenu menu; private int width; private boolean flag; private RadioGroup rg; private RelativeLayout layout; private ObjectAnimator animator; private int colors[]={Color.RED,Color.GREEN,Color.BLUE,Color.YELLOW}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //获取手机屏幕的大小 Display d = getWindowManager().getDefaultDisplay(); DisplayMetrics metrics = new DisplayMetrics(); d.getMetrics(metrics); width = metrics.widthPixels; setContentView(R.layout.activity_main); layout=(RelativeLayout) findViewById(R.id.main_layout); initMenu(); } private void initMenu() { // TODO Auto-generated method stub menu = new SlidingMenu(this); menu.setMode(SlidingMenu.LEFT); menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setBehindWidth(width * 2 / 3); View v = getLayoutInflater().inflate(R.layout.slidingmenu_left, null); initViewsMenu(v);//初始化左侧抽屉中的控件 menu.setMenu(v); menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); } private void initViewsMenu(View v) { // TODO Auto-generated method stub rg = (RadioGroup) v.findViewById(R.id.left_rg); rg.setOnCheckedChangeListener(this); } public void myclick(View v) { if (flag) { animator=ObjectAnimator.ofFloat(layout, "alpha", 0.5f,1f); animator.start(); menu.showContent(); } else { animator=ObjectAnimator.ofFloat(layout, "alpha", 1,0.5f); animator.start(); menu.showMenu(); } flag = !flag; } @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub int index=0; switch (checkedId) { case R.id.left_red: index=0; break; case R.id.left_green: index=1; break; case R.id.left_blue: index=2; break; case R.id.left_yellow: index=3; break; } layout.setBackgroundColor(colors[index]); animator=ObjectAnimator.ofFloat(layout, "alpha", 0.5f,1f); animator.start(); menu.showContent(); flag=!flag; }}
左侧抽屉的布局只有ReadioButton。
获取手机屏幕信息:
1、Display d = getWindowManager().getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
2、d.getMetrics(metrics);
3、width = metrics.widthPixels;
- Android——Slidingmenu互挤抽屉(QQ)应用
- 改进Android SlidingMenu实现QQ样式边侧滑抽屉技术
- Android SlidingMenu抽屉
- Android 抽屉 SlidingMenu
- 自定义抽屉—QQ特效
- Android 抽屉式菜单栏 slidingMenu和menudrawer
- 导入android SlidingMenu 应用
- android 左侧抽屉效果(根据QQ改编)
- Android自定义控件:类QQ抽屉效果
- android之抽屉布局应用
- android之抽屉布局应用
- Android 自定义应用抽屉Launcher
- 抽屉效果的实现(DrawerLayout和SlidingMenu的对比)
- USACO——挤牛奶
- android抽屉SlidingDrawer——错误显示
- Android——DrawerLayout抽屉效果
- SlidingMenu 实现抽屉样式菜单
- SlidingMenu侧拉抽屉框架
- Linux common clock framework(2)_概述
- css中清除浮动
- E
- Redis主从复制
- java中queue的使用
- Android——Slidingmenu互挤抽屉(QQ)应用
- Git how to restore deleted files
- 数据挖掘系列(10)——卷积神经网络算法的一个实现
- [Android] 图像各种处理系列文章合集
- wamp 80端口占用
- Linux common clock framework(3)_概述
- fullcalendar 日历改造
- composer的安装
- java虚拟机