我編寫了以下函數,以在屏幕上拖動ImageView。似乎工作正常,除了拖動圖像像瘋了一樣跳轉。Android中使用RelativeLayout的onTouchListener的奇怪跳躍值
看着日誌的問題似乎是我得到不正確的值爲X和Y之間的每個正確的值。我不知道爲什麼。誰能幫我解決這個問題嗎?日誌輸出的
hereOnTouchListener imageListener = new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int eventAction = event.getAction();
int X = (int)event.getX();
int Y = (int)event.getY();
if (eventAction == MotionEvent.ACTION_DOWN){
dragging = true;
tempParams = new RelativeLayout.LayoutParams(v.getWidth(), v.getHeight());
Log.i("v width and height", v.getWidth() + " " + v.getHeight());
}
if (eventAction == MotionEvent.ACTION_UP){
Log.i("dragging up","dragging up" + X + " " + Y);
dragging = false;
} else if (eventAction == MotionEvent.ACTION_MOVE){
if (dragging){
Log.i("dragging","dragging " + X + " " + Y);
tempParams.leftMargin = X;
tempParams.topMargin = Y;
v.setLayoutParams(tempParams);
// v.setPadding(X, Y, 0, 0);
v.invalidate();
}
}
return true;
}
};
樣本:
11-27 19:43:34.484: INFO/dragging(3530): dragging 131 131
11-27 19:43:34.504: INFO/dragging(3530): dragging 84 288
11-27 19:43:34.519: INFO/dragging(3530): dragging 132 134
11-27 19:43:34.539: INFO/dragging(3530): dragging 84 292
11-27 19:43:34.554: INFO/dragging(3530): dragging 132 139
11-27 19:43:34.574: INFO/dragging(3530): dragging 84 294
11-27 19:43:34.594: INFO/dragging(3530): dragging 132 142
11-27 19:43:34.609: INFO/dragging(3530): dragging 84 294
可以。重新格式化您的問題,使其更具可讀性。 – 2010-11-28 04:11:34