在Android中获取旋转动画中的X和Y坐标

时间:2015-03-02 06:23:26

标签: android android-animation android-canvas

    Is there any better way to get x and y co-ordinates of a view if the view is set to animate for a few seconds in a clockwise direction.


@Override
            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub
                Log.d("Anim", "Anim started");  




            float g = wheelMenu.getX();
            float h = wheelMenu.getY();

            }


            @Override
            public void onAnimationEnd(Animation animation) {
                // TODO Auto-generated method stub
                Log.d("Anim", "Anim ended");

                float i = wheelMenu.getX();
                float j = wheelMenu.getY();


            }



            @Override
            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub
                Log.d("Anim", "Anim started");

                float k = wheelMenu.getX();
                float l = wheelMenu.getY();



            }

我使用下面的代码来获得X,Y坐标。要求是以圆形方式旋转视图,并且监听器捕获运动事件以获得沿动画路径的XY坐标。

1 个答案:

答案 0 :(得分:0)

这有点晚了,但仍然值得回答。获取视图坐标的另一种方法是使用getGlobalVisibleRect,它将获得相对于根/顶级父视图的视图矩形。 例如

TextView textView = (TextView) findViewById(R.id.view_id);
Rect view_rect = new Rect();
textView.getGlobalVisibleRect(view_rect);
int x = view_rect.left;
int y = view_rect.top;

我不确定在获取矩形和视图移动之间是否会有明显的延迟,因为有动画正在运行。但是,通过查看您的视图的父视图很少,这将最小化。

您的问题似乎不清楚是否要检索运动事件或视图的坐标,因为提到了运动代码。如果是这种情况,请在下面发表评论和/或调整您的问题。