MapVIEw mapVIEw = (MapVIEw) findVIEwByID(R.ID.mapvIEw);int lat = mapVIEw.getLatitudeSpan(); // sometimes returns 0int long = mapVIEw.getLongitudeSpan(); // sometimes returns 360*1E6解决方法 我会检测到这种情况并安排你的工作在几百毫秒后再试一次. AFAIK,这些值最终会变得可用,但它们可能与时间相关.理论上,它们应该在您设置中心并设置缩放后进行计算,但我怀疑它们在MapVIEw渲染之后才真正计算,并且可能直到下载了一些来自Internet的地图数据.
因此,将依赖于这些跨度的代码隔离到方法中.从onCreate()和AsyncTask调用该方法,可能正如您今天所做的那样.但是,添加检测逻辑以查找无效值,然后在MapVIEw(或其他一些VIEw)上调用postDelayed(),以便在几百毫秒后再次调用您的方法(如果值无效).你可能还需要添加一些计数器,这样你就不会无限期地执行这个postDelayed()的东西.
当然,这是一个黑客攻击.但是,由于谷歌地图组件不是开源的,因此很难找到更稳固的东西.
总结以上是内存溢出为你收集整理的android – Mapview getLatitudeSpan和getLongitudeSpan无效全部内容,希望文章能够帮你解决android – Mapview getLatitudeSpan和getLongitudeSpan无效所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)