android:滑动侧边栏

原文地址:http://blog.csdn.net/intbird/


package com.idonoo.shareCar.ui.main;

import android.app.Activity;
import android.content.Context;
import android.view.GestureDetector;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.View.OnTouchListener;
import com.idonoo.frame.GlobalInfo;
import com.idonoo.frame.beanType.IdentifyType;
import com.idonoo.shareCar.R;
import com.idonoo.shareCar.app.AppContext;
import com.idonoo.shareCar.ui.commom.author.ShowAuthor;

/**
 * @author intbird
 *
 */
public class MainBaseThouch extends ShowAuthor{
	
	public boolean isleftBtnIsMenu=false;
	
	@Override
	public void onResume() {
		super.onResume();
		toggleRedPoint();
	}
	
	public void initLeftShowMenu(){
		if(prviousImg!=null){
			isleftBtnIsMenu=true;
			prviousImg.setOnClickListener(new View.OnClickListener() {
				@Override
				public void onClick(View v) {
					Activity act = getParent();
					if(act != null&&act instanceof MainSlideContent){
						((MainSlideContent)getParent()).toggleMenu();
					}
				}
			});
			prviousImg.setImageResource(R.drawable.i_ico_action_home);
		}
	}
	
	public void initLeftShowGoBack(){
		if(prviousImg!=null){
			isleftBtnIsMenu=false;
			prviousImg.setOnClickListener(new View.OnClickListener() {
				@Override
				public void onClick(View v) {
					onBackPressed();
				}
			});
			prviousImg.setImageResource(R.drawable.i_ico_back_arrows);
		}
	}
	
	public void showMenu(){
		Activity act = getParent();
		if(act != null&&act instanceof MainSlideContent){
			((MainSlideContent)getParent()).showMenu();
		}
	}
	
	public void hideMenu(){
		Activity act = getParent();
		if(act != null&&act instanceof MainSlideContent){
			((MainSlideContent)getParent()).hideMenu();
		}
	}
	
	public void toggleRedPoint(){
		if(prviousImg!=null&&isleftBtnIsMenu){
			if(AppContext.getAppmessageCount()>0){
				prviousImg.setImageResource(R.drawable.i_ico_action_home_red);
			}else{
				prviousImg.setImageResource(R.drawable.i_ico_action_home);
			}
		}
	}
	
	public void showIdentityStart(final IdentifyType type){
		GlobalInfo.getInstance().setLastIdentify(type);
		Activity act = getParent();
		if(act != null&&act instanceof MainSlideContent){
			((MainSlideContent)getParent()).showIdentifyPage(type);
			((MainSlideContent)getParent()).switchIdentiPageStart();
		}
	}
	public void showIdentifyEnded(){
		Activity act = getParent();
		if(act != null&&act instanceof MainSlideContent){
			((MainSlideContent)getParent()).switchIdentiPageEnded();
		}
	}
	
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		Activity act = getParent();
		if(act != null&& act instanceof MainSlideContent ){
			return ((MainSlideContent)getParent()).onKeyDown(keyCode, event);
		}
		return super.onKeyDown(keyCode, event);
	}

	/**
	 * 滑动侧边栏
	 * @author intbird
	 *
	 */
	public static class MyGestureListener extends SimpleOnGestureListener implements OnTouchListener {
		private int distance = 200;
		private int velocity = 500;
		
		private GestureDetector gestureDetector;
		
		public MyGestureListener(Context context) {
			super();
			gestureDetector = new GestureDetector(context, this);
		}

		public boolean slideLeft() {
			return false;
		}
		
		public boolean slideRight() {
			return false;
		}
		
		@Override
		public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
				float velocityY) {
			if (e1.getX() - e2.getX() > distance&& Math.abs(velocityX) > velocity) {
				slideLeft();
			}
			if (e2.getX() - e1.getX() > distance&& Math.abs(velocityX) > velocity) {
				slideRight();
			}
			return false;
		}
		@Override
		public boolean onTouch(View v, MotionEvent event) {
			return gestureDetector.onTouchEvent(event);
		}

		public GestureDetector getGestureDetector() {
			return gestureDetector;
		}

		public void setGestureDetector(GestureDetector gestureDetector) {
			this.gestureDetector = gestureDetector;
		}
	}
}


猜你喜欢

转载自blog.csdn.net/intbird/article/details/44197291