2015-03-02 116 views
0
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

回答

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; 

我不確定在獲取矩形和移動視圖之間是否會有顯着的延遲,因爲有動畫正在運行。但是,通過對您的視圖擁有很少的父視圖,這可以最小化。

您的問題似乎並不清楚您是否想要檢索運動事件或視圖的座標,因爲提到了運動代碼。如果是這種情況,請在下面評論和/或調整您的問題。