按钮的点击事件很简单 就是实现onclick方法 ,长按也很简单就按钮实现onlongclick 事件也可以了,但是放在一起就有点坑爹了,
package com.yueniapp.sns.v;
import com.yueniapp.sns.a.CamereAcitiity;
import com.yueniapp.sns.a.HomeActivity;
import com.yueniapp.sns.u.SharePrenerceUtil;
import com.yueniapp.sns.u.ViewUtil;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.util.AttributeSet;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.ImageView;
/**
*
* @author admin
*
*/
public class ClickImageView extends ImageView implements OnGestureListener,
OnLongClickListener {
private GestureDetector detector;
private Context context;
public ClickImageView(Context context) {
this(context, null);
}
public ClickImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.context = context;
this.detector = new GestureDetector(this);
this.setOnLongClickListener(this);
}
public ClickImageView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
detector.onTouchEvent(event);
return super.onTouchEvent(event);
}
@Override
public boolean onLongClick(View v) {
return false;
}
@Override
public boolean onDown(MotionEvent e) {
return false;
}
@Override
public void onShowPress(MotionEvent e) {
}
/** 这个是点击事件 ,好像点解的时间不超过500ms就激活该事件,否则不激活改事件*/
@Override
public boolean onSingleTapUp(MotionEvent e) {
//可以在e.toString 方法中看到各种事件的原理
//点击事件的操作
ViewUtil.toast(context, "点击事件");
return false;}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
return false;
}
/** 长按事件 */
@Override
public void onLongPress(MotionEvent e) {
//长按事件的操作
ViewUtil.toast(context, "长按事件");
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
return false;
}
}