好心情:
我的活动中有一个imageview,我将ontouchListner()设置为imageview,这意味着我为imageview实现了如下接口:
public class mapActivity extends Activity
{
//--------------------------------------
private ImageView imageView;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageView = (ImageView) this.findViewById(R.id.imageView1);
AddImageViewEvents();
}
private void AddImageViewEvents() {
imageView.setOnTouchListener(new ImageView.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int action, pointerCount, i;
action = event.getAction();
pointerCount = event.getPointerCount();
switch (action) {
case MotionEvent.ACTION_DOWN:
//code here
break;
case MotionEvent.ACTION_MOVE:
//code here
break;
default:
break;
}
return true;
}
}
我想用同样的方法把GestureDetector设置为我的ImageView,我不知道这是否可能。
谢谢。
最佳答案
public class TestImageView extends ImageView implements OnGestureListener{
public TestImageView(Context context) {
super(context);
// TODO Auto-generated constructor stub
setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-ge`enter code here`nerated method stub
return false;
}
});
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
}
现在可以在XML中使用TestImageView,而不仅仅是ImageView。