Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MapView,找到地图的中心,通过投掷动作确定动画的结束_Android - Fatal编程技术网

Android MapView,找到地图的中心,通过投掷动作确定动画的结束

Android MapView,找到地图的中心,通过投掷动作确定动画的结束,android,Android,我能找到的与此相关的最接近的东西是: 我想在用户“甩”地图后,确定地图中心的最终“休息点”。当用户抬起手指时,我正在拦截触摸事件,但当地图以滑动动作甩动时,这不起作用,因为地图在该点继续移动。贴图动画完成后是否可以实现回调?我查看了MapView、Overlay、MapController等类的文档,但没有看到任何有帮助的内容。我还一直在寻找一种“Dod end drag”解决方案,它可以在地图移动结束后的瞬间检测地图中心。我还没有找到它,所以我做了这个简单的实现,效果很好: private

我能找到的与此相关的最接近的东西是:


我想在用户“甩”地图后,确定地图中心的最终“休息点”。当用户抬起手指时,我正在拦截触摸事件,但当地图以滑动动作甩动时,这不起作用,因为地图在该点继续移动。贴图动画完成后是否可以实现回调?我查看了MapView、Overlay、MapController等类的文档,但没有看到任何有帮助的内容。

我还一直在寻找一种“Dod end drag”解决方案,它可以在地图移动结束后的瞬间检测地图中心。我还没有找到它,所以我做了这个简单的实现,效果很好:

private class MyMapView extends MapView {

    private GeoPoint lastMapCenter;
    private boolean isTouchEnded;
    private boolean isFirstComputeScroll;

    public MyMapView(Context context, String apiKey) {
        super(context, apiKey);
        this.lastMapCenter = new GeoPoint(0, 0);
        this.isTouchEnded = false;
        this.isFirstComputeScroll = true;
    }
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN)
            this.isTouchEnded = false;
        else if (event.getAction() == MotionEvent.ACTION_UP)
            this.isTouchEnded = true;
        else if (event.getAction() == MotionEvent.ACTION_MOVE)
            this.isFirstComputeScroll = true;
        return super.onTouchEvent(event);
    }
    @Override
    public void computeScroll() {
        super.computeScroll();
        if (this.isTouchEnded &&
            this.lastMapCenter.equals(this.getMapCenter()) &&
            this.isFirstComputeScroll) {
            // here you use this.getMapCenter() (e.g. call onEndDrag method)
            this.isFirstComputeScroll = false;
        }
        else
            this.lastMapCenter = this.getMapCenter();
    }
}

就这样,我希望这会有帮助!o/

如何将其与layout.xml一起使用?我一直在犯这个错误