onLocationChanged 在我的自定义视图中调用 onDraw 方法
我有一个 MapImageViewer Activity 类,它具有检查手机 GPS 位置的方法。然后,此活动调用我的一个名为 MapCanvas 的自定义视图 - 其中构造函数获取纬度和经度,然后在地图图像上的相应像素上绘制一个圆圈。
这工作正常,但我想知道每次 gps 坐标发生变化时如何更新并调用 onDraw 方法?我知道它需要进入 onLocationChanged 方法..但我不确定如何将新的纬度和经度值从那里传递到我的自定义视图类。
I have a MapImageViewer Activity class that has methods for checking the phones gps location. This activity then calls a custom view of mine called MapCanvas - where the constructor takes the latitude and longitude and then draws a circle to the corresponding pixels on an image of a map.
This works ok, but I am wondering how can I update and call the onDraw method every time the gps coordinates change? I know it needs to go in the onLocationChanged method..but i'm not sure how i can pass the new latitude and longitude values from there to my Custom View class.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如何使用
.sendBroadcast()
从onLocationChanged()
方法发送纬度/经度,并使用BroadcastReceiver
在 View 类中处理它们?或者,您可以使用 LocationListener 中的回调方法,如 这篇文章。
What about sending lat/lon from the
onLocationChanged()
method by using.sendBroadcast()
and handle them inside your View class with aBroadcastReceiver
?Alternatively you could use a callback method from the LocationListener like shown in this post.
每次获取新坐标时调用视图的
invalidate()
方法(如果 locationListener 与 UI 线程位于不同的线程中,则调用postInvalidate()
方法)Call the view's
invalidate()
method every time you get new coordinates (orpostInvalidate()
if the locationListener is in a different thread from the UI thread)