On 6/9/2010 7:13 PM, Steve Howard wrote:
On Tue, Jun 8, 2010 at 9:03 PM, Raymond Rodgers
<[email protected] <mailto:[email protected]>> wrote:
On Tue, Jun 8, 2010 at 7:14 PM, Steve Howard <[email protected]
<mailto:[email protected]>> wrote:
A simple solution is to add an Overlay, override the draw()
method, and not actually do any drawing, but simply use the
method as a hook to know anytime the map has potentially moved
or zoomed. The problem is, this will get called more often
than necessary, so you'll need some custom logic to decide
when the viewport has changed "enough" for you to make a new
query. This shouldn't be too difficult however -- you can
track the current center and zoom in your Overlay subclass --
and you'd probably need some kind of logic like this anyway.
Let me know how that works for you, or if it works at all.
Steve
Thanks Steve, I eventually came to give that very method a try,
although I haven't yet decided on how to avoid the excessive
updating. I may try to find out when the user's fingers are no
longer on the touch screen or when the trackball (if present) is
no longer moved.
Yeah, you do have to do some work here, which is unfortunate. There
are several options, you may already be aware of them. One is to use
Overlay.onTouchEvent() to detect ACTION_UP events, which could help
detect when touch gestures have finished. Another is to use a timeout
mechanism in draw() itself. On each draw() call, you can have a
Handler to send a message at a specified time in the near future,
after canceling any other such previously requested messages. When
you get the message, you know the user's been idle for that short
period of time. android.view.GestureDetector uses this approach for
long press detection, among other things -- check out lines 456-7,
http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/java/android/view/GestureDetector.java.
Thanks for the tip, I was thinking about the touch interface route so
I'll look in that direction.
Raymond
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en