Tôi đã làm điều gì đó tương tự với những gì bạn cần - bạn có thể tìm thấy một số thông tin về there. Tôi đang làm một số công cụ thủ công ở đó nhưng nó hoạt động tốt đẹp. Để thuận tiện cho bạn ở đây là mã tôi đã sử dụng:
OnTouchListener gestureListener = new View.OnTouchListener() {
private int padding = 0;
private int initialx = 0;
private int currentx = 0;
private ViewHolder viewHolder;
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
padding = 0;
initialx = (int) event.getX();
currentx = (int) event.getX();
viewHolder = ((ViewHolder) v.getTag());
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
currentx = (int) event.getX();
padding = currentx - initialx;
}
if (event.getAction() == MotionEvent.ACTION_UP ||
event.getAction() == MotionEvent.ACTION_CANCEL) {
padding = 0;
initialx = 0;
currentx = 0;
}
if (viewHolder != null) {
if (padding == 0) {
v.setBackgroundColor(0xFF000000);
if (viewHolder.running)
v.setBackgroundColor(0xFF058805);
}
if (padding > 75) {
viewHolder.running = true;
v.setBackgroundColor(0xFF00FF00);
viewHolder.icon.setImageResource(R.drawable.clock_running);
}
if (padding < -75) {
viewHolder.running = false;
v.setBackgroundColor(0xFFFF0000);
}
v.setPadding(padding, 0, 0, 0);
}
return false;
}
};
Cảm ơn phản hồi của bạn. Tôi đã tìm thấy một giải pháp tương tự cho bạn. http://goo.gl/WpFEi Các bài kiểm tra đầu tiên phản hồi một kết quả rất tốt nhưng laggy. Tôi nghĩ rằng giải pháp này cần một chút tùy biến - nhưng tôi nghĩ nó sẽ hoạt động! Cảm ơn – Superroot
Tính năng này có hoạt động với Android 2.1+ GestureDetector không? –
@CodeDroid: Does * what * "hoạt động cho Android 2.1+ GestureDetector"? – CommonsWare