侧滑菜单框架slidingMenu,实现了侧滑展示另一个activity界面,按比例分配两个activity的显示比例的功能
框架下载地址:https://github.com/jfeinstein10/SlidingMenu
先上效果图
接下来总结实现步骤:
步骤一:引入第三方框架包。
将下载好的第三方框架slidingMenuLibrary项目引入Eclipse。在自己的项目中使用别人写好的方法来实现自己的需求。
引入第三放框架步骤如下:
1.在eclipse中点击左上角File菜单。
2.选择Import…选项。
3.引入android项目,根据slidingMenuLibrary项目路径引入,同时勾选Copy projects into workspace选项(拷贝到工作空间)。
4.找到引入的slidingMenuLibrary项目右键,选择Properties选项,在左侧菜单中选择Android选项勾选is Library选项。
5.创建需要侧滑菜单的项目,找到创建好的项目,右键选择Properties选项,同样在左侧菜单中选择Android选项,点击add按钮添加slidingMenuLibrary项目,到此成功引入第三方框架侧滑菜单slidingMenuLibrary项目。
步骤二:制作MainActivity界面布局,SecondActivity类布局与侧滑菜单选项布局
MainActivity界面布局与SecondActivity界面布局在创建android activity类时自动生成无需再次创建,这两个布局文件对应为每个界面不同的页面,需要单独创建侧滑菜单布局文件,创建一个android布局文件命名为menu.xml,menu.xml对应为侧滑菜单的布局文件。。
步骤三:写侧滑菜单Menu类。
创建Menu类,在该类中添加一个有参构造方法,接受参数类型是Activity类型,在该构造方法中创建第三方框架侧滑菜单对象,类型为Slidingmenu,通过setMenu方法设置该对象显示布局样式,指向secondActivit布局文件。根据该布局找到每个侧滑菜单的按钮,给按钮添加监听。同时在该类中添加showMenu方法,在该方法中实现展示侧滑菜单功能。
步骤四:在MainActivity类中显示侧滑菜单。
在MainActivity类中的onCreate的方法中创建Menu对象,通过Menu对象调用的showMenu方法来显示侧滑菜单,给MainActivity布局中的TextView添加监听,实现当点击TextView时也能弹出侧滑菜单。
一、加载slidingMenu框架
二、创建两个activity并加载两个对应的layout文件;创建侧滑要显示的布局menu.xml;
三、创建一个类,并在构造方法里创建slidingMenu,设置参数;另外提供一个show方法供外界调用;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Menu {
SlidingMenu slidingMenu;
/**
* 此构造方法创建一个slidingMenu,
* @param activity
*/
public Menu(final Activity activity) {
//创建slidingMenu对象
slidingMenu=new SlidingMenu(activity);
//加载布局文件
slidingMenu.setMenu(R.layout.menu);
//设置依附于哪个activty
slidingMenu.attachToActivity(activity, SlidingMenu.SLIDING_CONTENT);
//设置slidinmenu显示宽度,通过得到当前activity的宽度作为计算依据
int windowWidth=activity.getResources().getDisplayMetrics().widthPixels;
slidingMenu.setBehindOffset(windowWidth/2);
//给slidingMenu里的buttonsecond控件添加监听器,单击后跳转到secondActivity
Button btnSecond=(Button) activity.findViewById(R.id.buttonSecond);
btnSecond.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
activity.startActivity(new Intent(activity, SecondActivity.class));
}
});
}
//此方法显示slidingMenu
<span style="white-space:pre"> </span>public void showMenu(){
<span style="white-space:pre"> </span>if(isShow==false){
<span style="white-space:pre"> </span>slidingMenu.showMenu();
<span style="white-space:pre"> </span>}else{
<span style="white-space:pre"> </span>slidingMenu.closeMenu();
<span style="white-space:pre"> </span>isShow=true;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
}
}
四、在mainAcivity里实现侧滑菜单效果,给textview添加监听器,单击时显示侧滑菜单
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.app.Activity;
public class MainActivity extends Activity {
Menu menu;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建侧滑菜单类实例
menu = new Menu(this);
//找到控件
tv=(TextView) findViewById(R.id.showMenu);
//设置监听器,单击时显示侧滑菜单;
tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
menu.showMenu();
}
});
}
如果想使用滑动界面时显示侧滑菜单,只需在当前Activity的onTouchEvent方法里添加显示方法即可;
private float startX;
@Override
public boolean onTouchEvent (MotionEvent event) {
//对界面滑动进行监听,
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
startX =event.getX();
break;
case MotionEvent.ACTION_UP:
float stopX = event.getX();
//如果X的开始坐标不等于结束坐标,说明有滑动;调Menu的showMenu方法
if(startX!=stopX){
menu.showMenu();
}
break;
}
return super.onTouchEvent(event);
}