Tôi muốn nhận được fling
phát hiện cử chỉ làm việc trong ứng dụng Android của mình.
Những gì tôi có là một GridLayout
cái chứa 9 ImageView
s. Nguồn có thể được tìm thấy ở đây: Bố cục lưới của Romain Guys .
Tập tin tôi lấy là từ ứng dụng Photostream của Romain Guy và chỉ được điều chỉnh một chút.
Đối với tình huống nhấp chuột đơn giản, tôi chỉ cần đặt onClickListener
cho mỗi ImageView
tôi thêm là chính activity
mà thực hiện View.OnClickListener
. Dường như vô cùng phức tạp hơn để thực hiện một cái gì đó nhận ra a fling
. Tôi đoán điều này là bởi vì nó có thể kéo dài views
?
Nếu hoạt động của tôi thực hiện,
OnGestureListener
tôi không biết làm thế nào để đặt nó làm người nghe cử chỉ choGrid
hoặc cácImage
quan điểm mà tôi thêm.public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...
Nếu hoạt động của tôi thực hiện
OnTouchListener
thì tôi không cóonFling
phương pháp nàooverride
(nó có hai sự kiện là các tham số cho phép tôi xác định xem fling có đáng chú ý không).public class SelectFilterActivity extends Activity implements View.OnClickListener, OnTouchListener { ...
Nếu tôi thực hiện một tùy chỉnh
View
, như thếGestureImageView
sẽ kéo dài,ImageView
tôi không biết làm thế nào để biết hoạt độngfling
đã xảy ra từ chế độ xem. Trong mọi trường hợp, tôi đã thử cách này và các phương thức không được gọi khi tôi chạm vào màn hình.
Tôi thực sự chỉ cần một ví dụ cụ thể về việc này trên các khung nhìn. Những gì, khi nào và làm thế nào tôi nên đính kèm này listener
? Tôi cần phải có khả năng phát hiện các nhấp chuột duy nhất.
// Gesture detection
mGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
int dx = (int) (e2.getX() - e1.getX());
// don't accept the fling if it's too short
// as it may conflict with a button push
if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.absvelocityY)) {
if (velocityX > 0) {
moveRight();
} else {
moveLeft();
}
return true;
} else {
return false;
}
}
});
Có thể đặt chế độ xem trong suốt phía trên màn hình của tôi để chụp flings không?
Nếu tôi chọn không cho các inflate
chế độ xem hình ảnh con của tôi từ XML, tôi có thể chuyển GestureDetector
tham số dưới dạng tham số cho lớp con mới ImageView
mà tôi tạo không?
Đây là hoạt động rất đơn giản mà tôi đang cố gắng để fling
phát hiện hoạt động cho: ChọnFilterActivity (Chuyển thể từ photostream) .
Tôi đã xem xét các nguồn này:
Không có gì đã làm việc cho tôi cho đến nay và tôi đã hy vọng cho một số gợi ý.