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

问题描述:

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(); 



      } 

Iam使用以下代码获取X,Y坐标。要求是以循环方式旋转视图并监听器来捕获运动事件以获取沿着动画路径的XY坐标。在Android中获取X和Y坐标旋转动画

+0

比什么更好的方法?向我们展示一些“不太好”的代码? – Skynet 2015-03-02 06:25:17

+0

@Skynet刚刚更新了这个问题 – Sreeji 2015-03-02 06:36:17

这有点迟,但仍值得回答。获取视图坐标的另一种方法是使用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; 

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

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