Android实现自定义滑动式抽屉效果菜单

2019-12-10 18:02:53刘景俊
这篇文章主要为大家详细介绍了Android实现自定义滑动式抽屉效果菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下  

在Andoird使用Android自带的那些组件,像SlidingDrawer和DrawerLayout都是抽屉效果的菜单,但是在项目很多要实现的功能都收到Android这些自带组件的限制,导致很难完成项目的需求,自定义的组件,各方面都在自己的控制之下,从而根据需求做出调整。想要实现好的效果,基本上都的基于Android的OnTouch事件自己实现响应的功能。 
首先,给大家先看一下整体的效果:

Android,滑动式,抽屉效果

滑动的加速度效果都是有的,具体的体验,只能安装后才能查看。 
接下来,看代码: 
代码从MainActivity延伸出了2个类:MainController和MainView,MainController来处理控制层、MainView来操作展示层。 
主要代码: 
MainActivity的代码:

 

package com.example.wz;

import com.example.wz.controller.MainController;
import com.example.wz.util.MyLog;
import com.example.wz.view.MainView;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;

public class MainActivity extends Activity {

 public MyLog log = new MyLog(this, true);

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  log.e("欢迎你加入测试项目.");
  link();
 }

 public MainController mainController;
 public MainView mainView;

 private void link() {
  this.mainController = new MainController(this);
  this.mainView = new MainView(this);

  this.mainController.thisView = this.mainView;
  this.mainView.thisController = this.mainController;

  this.mainView.initViews();
 }

 @Override
 public boolean onTouchEvent(MotionEvent event) {
  super.onTouchEvent(event);
  return mainController.onTouchEvent(event);
 }
}

MainController的代码: