MapController.zoomIn() or MapController.zoomOut();
我知道它确实启动了一个动画序列来放大/缩小到下一个级别,但是没有已知的方法可以找到/谷歌搜索等,以找出它何时完成该序列.我需要能够在停止时运行更新命令,以便我的地图正确更新.
我发现通过在调用上面的函数后运行update命令,Projection不是来自缩小级别,而是介于两者之间(所以我无法显示我需要的所有数据).
解决方法@H_403_19@ 我不得不承认我在这里受到了抨击,这是一个黑客攻击,但它很有效.我开始时需要知道何时发生了缩放,并且一旦我迷上了(并且在一些有趣的调试之后)我发现一些值是“缩放之间”值,所以我需要等到缩放完成后.正如Stack Overflow上其他地方所建议的那样,我的缩放侦听器是一个重写的MapVIEw.dispatchDraw,用于检查自上次以来缩放级别是否已更改.
除此之外,我添加了一个isResizing方法,该方法检查自getLongitudeSpan值停止更改以来时间戳是否超过100毫秒.效果很好.这是代码:
我的第一个Stack Overflow帖子!喔喔!
公共类MapVIEwWithZoomListener扩展MapVIEw {
private int oldZoomLevel = -1;private List<OnClickListener> Listeners = new ArrayList<OnClickListener>();private long resizingLongitudeSpan = getLongitudeSpan();private long resizingTime = new Date().getTime();public MapVIEwWithZoomListener(Context context,String s) { super(context,s);}public MapVIEwWithZoomListener(Context context,AttributeSet attributeSet) { super(context,attributeSet);}public MapVIEwWithZoomListener(Context context,AttributeSet attributeSet,int i) { super(context,attributeSet,i);}public boolean isResizing() { // done resizing if 100ms has elapsed without a change in getLongitudeSpan return (new Date().getTime() - resizingTime < 100);}public voID dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); if (getZoomLevel() != oldZoomLevel) { new AsyncTask() { @OverrIDe protected Object doInBackground(Object... objects) { try { if (getLongitudeSpan() != resizingLongitudeSpan) { resizingLongitudeSpan = getLongitudeSpan(); resizingTime = new Date().getTime(); } Thread.sleep(125); //slightly larger than isMoving threshold } catch (InterruptedException e) { e.printstacktrace(); } return null; } @OverrIDe protected voID onPostExecute(Object o) { super.onPostExecute(o); if (!isResizing() && oldZoomLevel != getZoomLevel()) { oldZoomLevel = getZoomLevel(); invalIDate(); for (OnClickListener Listener : Listeners) { Listener.onClick(null); } } } }.execute(); }}public voID addZoomListener(OnClickListener Listener) { Listeners.add(Listener);}总结
以上是内存溢出为你收集整理的android – 如何从MapController捕获放大/缩小动画的结尾?全部内容,希望文章能够帮你解决android – 如何从MapController捕获放大/缩小动画的结尾?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)