Android Open Source - SlideMenu Content Layout






From Project

Back to project page SlideMenu.

License

The source code is released under:

Apache License

If you think the Android project SlideMenu listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2014 fengwx.cn@gmail.com
 *// ww w.  j a v  a2 s  . c om
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.fengwx.slidemenu;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.FrameLayout;

/**
 * Content layout of slidemenu, deal with touch event
 * 
 * @author fengwx
 */
public class ContentLayout extends FrameLayout implements Configuration {

  private float mDownX, mDownY, mMoveX, mMoveY;

  private boolean mLeftMenuVisible;

  private int mLeftMenuW;

  public ContentLayout(Context context) {
    super(context);
  }

  public ContentLayout(Context context, AttributeSet attrs) {
    super(context, attrs);
  }

  public ContentLayout(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
  }

  /**
   * Set left menu visible
   * 
   * @param visible
   */
  public void setLeftMenuVisible(boolean visible) {
    mLeftMenuVisible = visible;
  }

  public void setLeftMenuW(int width) {
    mLeftMenuW = width;
  }

  @Override
  public boolean onInterceptTouchEvent(MotionEvent ev) {
    switch (ev.getAction()) {
      case MotionEvent.ACTION_DOWN:
        mDownX = ev.getRawX();
        mDownY = ev.getRawY();
        break;
      case MotionEvent.ACTION_MOVE:
        mMoveX = ev.getRawX();
        mMoveY = ev.getRawY();
        if (Math.abs(mMoveY - mDownY) < FINGER_MAX_DISTANCE_Y) {
          if (mLeftMenuVisible) {
            if ((mMoveX - mDownX < 0) && mMoveX < FINGER_MAX_DISTANCE_X + mLeftMenuW && mMoveX > mLeftMenuW
                && mDownX < FINGER_MAX_DISTANCE_X + mLeftMenuW && mDownX > mLeftMenuW) {
              return true;
            }
          } else {
            if ((mMoveX - mDownX > 0) && mMoveX < FINGER_MAX_DISTANCE_X && mDownX < FINGER_MAX_DISTANCE_X) {
              return true;
            }
          }
        }
        break;
    }
    return false;
  }

}




Java Source Code List

org.fengwx.SlideMenuActivity.java
org.fengwx.slidemenu.Configuration.java
org.fengwx.slidemenu.ContentLayout.java
org.fengwx.slidemenu.SlideMenuManager.java
org.fengwx.slidemenu.SlideMenu.java