原文地址: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;
}
}
}