2012-02-16 37 views
5

Đây là câu hỏi mở về Android ListViews, Gestures và Animations. Tôi thực sự không quen thuộc với các cử chỉ trong Android, vì vậy tôi chỉ đang tìm kiếm ý tưởng và vấn đề màu xám về vấn đề này.Cách triển khai cử chỉ mở danh sách Android

Dưới đây là hai ảnh chụp màn hình và a video ví dụ về ảnh hưởng của những gì tôi đang cố gắng kết hợp. Hãy xem xét việc xem video, nó thực sự đáng giá.

enter image description here

enter image description here

Các ảnh chụp màn hình từ một dự án mã nguồn mở iOS tìm thấy here.

Câu hỏi đặt ra là, làm cách nào bạn triển khai cử chỉ "mở danh sách" như cử chỉ tôi thấy thường xuyên hơn trong các ứng dụng iPhone/iPad, nhưng dành cho Android?

Sửa 1, ý tưởng 1:

Okay ý tưởng đầu tiên, AFAIK cử chỉ Pinch là bằng cách nào đó như một cử chỉ kéo, vì vậy tôi đoán chúng tôi có thể nhận được X và Y tọa độ của hai ngón tay lên màn?

Tiếp theo, the answer to this question có thể giúp đỡ, ý tưởng cơ bản là:

Lấy vị trí chỉ số của mặt hàng đó có thể nhìn thấy đầu tiên trong danh sách

Lấy vị trí chỉ số của mặt hàng đó có thể nhìn thấy cuối cùng trong danh sách

Lặp từ chỉ số đầu tiên đến cuối cùng với getChildAt chức năng

Đối với mỗi đứa trẻ, ca ll các getLocationOnScreen phương pháp để có được tọa độ của mặt hàng đó lặp hiện tại

Sau đó, một số so sánh giữa các cử chỉ chụm phối và mỗi tọa độ mục có thể được thực hiện bên trong vòng lặp để có được hai mục giữa mà hàng mới tôi phải đưa vào.

Cân nhắc biểu diễn biểu diễn appart Tôi nghĩ rằng nó có thể hoạt động, nhưng có thể có một cách đơn giản hơn để có được hai mục đó (?).

Ai sẽ là người tiếp theo? :)

Cập nhật:

Cảm ơn @rhlnair mũi, tôi dùng dịp này để nói với mọi người rằng tôi bắt đầu làm việc về vấn đề này vào thời gian rảnh rỗi của tôi và bạn có nhiều thì chào mừng bạn đến giúp đỡ về điều này.

Dự án có tại https://github.com/arnaudbos/Android-GestureListView. Tôi bắt đầu hai triển khai khác nhau trên hai nhánh khác nhau và sẽ tận hưởng bất kỳ ai để tạo ra một chi nhánh mới.

Tôi có điều gì đó thực sự đáng khích lệ trong nhánh "attemp-via-scale-gesture-detector" nhưng một số tác dụng phụ từ ListView.

Hãy đến với mọi người!

+0

Câu hỏi tuyệt vời sau khi thấy video .... –

+0

ý tưởng tuyệt vời ...... – himanshu

Trả lời

0

Khi thực hiện một cử chỉ chụm, bạn có hai ngón tay trên màn hình và do đó có một điểm ở giữa hai điểm đó. Đó là số học euclide đơn giản để tìm điểm giữa đó.

Sau đó, hãy tìm khi bạn nói phần tử trong danh sách mà điểm này ở trên. Bạn đề cập đến hiệu suất và tôi không nghĩ rằng đây sẽ là một vấn đề. Bạn đang lặp lại một vòng lặp một vài lần và yêu cầu tọa độ. Tôi đã làm tồi tệ hơn nhiều về các sự kiện liên lạc.

Nếu điểm giữa chụm nằm ở giữa mục danh sách bạn tạo mục ở trên và ngược lại dưới đây.

Xem phần ở dưới cùng nơi họ sử dụng một người biết lắng nghe quy mô: http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html

Sử dụng người nghe quy mô bạn có thể sử dụng quy mô lớn để tìm hiểu nếu bạn tạo một nguyên tố mới. Nếu tỷ lệ ở trên (bạn đang "phóng to") một ngưỡng, bạn tạo một phần tử mới và cho phép chế độ xem trở lại từ bộ điều hợp danh sách.

1

có vẻ là một ý tưởng đầy thử thách ..

tôi nghĩ rằng một số các hiệu ứng trong ứng dụng rõ ràng như kéo một hàng đã chọn lên/xuống có thể được lấy từ

https://github.com/commonsguy/cwac-touchlist

Các vấn đề liên quan