Tôi có một MapView trong một hoạt động và nó hoạt động tốt, bản đồ cho thấy, và nó phản ứng với vòi, và tôi có thể trích xuất các vị trí một cách dễ dàng. Tuy nhiên, trình xử lý này cũng phản hồi việc thu nhỏ, vì vậy nếu người dùng cố gắng thu nhỏ, ứng dụng sẽ phản hồi như thể họ đã nhấn vào (và điều này rất khó hiểu đối với họ).Làm cách nào để tôi phản hồi với một lần chạm trên MapView trên Android nhưng bỏ qua việc thu phóng bằng pinch?
Làm cách nào tôi có thể trả lời các lần nhấn trên MapView và chỉ nhận một lần nhấn, đặc biệt bỏ qua chụm-thu nhỏ và nhấn đúp?
Tôi có cần sử dụng OnTouchEvent() thay vì OnTap() không? Nếu vậy, làm cách nào để phân biệt giữa các sự kiện chạm khác nhau và cách truy cập GeoPoint?
Dưới đây là đoạn code từ bên MapActivity tôi:
class MapOverlay extends com.google.android.maps.Overlay
{
@Override
public boolean onTap(GeoPoint p, MapView map)
{
if (p!=null)
{
// Do stuff with the geopoint
return true; // We handled the tap
}
else
{
return false; // We didn't handle the tap
}
}
}
Bạn có thể tiếp tục sử dụng onTap, được thiết kế để chỉ phản hồi khi các mục lớp phủ được chạm vào (trái ngược với bất kỳ vị trí nào trên bản đồ) và vẫn đặt trình nghe chạm trên MapView để bỏ qua pinch, như điều này: http://stackoverflow.com/questions/4626028/how-to-disable-pinch-in-android-mapview –
Thú vị khi kéo bản đồ là tốt. do đó Drag không kích hoạt onTap() nhưng chạm vào (như mong đợi) nhưng cũng pinch & zoom. Đó không phải là điều tôi mong đợi. –
Tôi không muốn tắt tính năng thu nhỏ và thu phóng, tôi muốn nó hoạt động, tôi cũng chỉ muốn ứng dụng của tôi cũng nhận được onTap. –