2011-11-17 9 views
1

ScaleAnimationを使用してImageViewのサイズを変更しました。しかし、アニメーションが完了したら、どうすれば私のImageViewのディメンションかそのビットマップを取得できます。ここで おかげScaleAnimationの後にViewの新しい幅と高さを取得する方法

は私のコードです:

ScaleAnimation animation = new ScaleAnimation(m_oldZoomRatio, m_currentZoomRatio, m_oldZoomRatio, m_currentZoomRatio); 

     animation.setFillAfter(true); 
     animation.setFillEnabled(true); 
     animation.setAnimationListener(new AnimationListener() { 

      public void onAnimationStart(Animation animation) { 
      } 

      public void onAnimationRepeat(Animation animation) { 
      } 

      public void onAnimationEnd(Animation animation) { 
      } 
     }); 
     m_child.startAnimation(animation); 

m_oldZoomRatio != m_currentZoomRatio

自分のビューが実行中にレイアウトを変更することがわかりました。しかし、幅と高さを取得すると、ビューが作成されるときに元の値が返されます。

答えて

1

は、アニメーションの終わりに、あなたの返事を幅と高さ

<animation-object>.setAnimationListener(new AnimationListener() 
    { 

     @Override 
     public void onAnimationEnd(Animation arg0) { 
      img.getWidth(); 
       img.getHeight(); 
        //OR 
       int h=img.getLayoutParams().height; 
       int w=img.getLayoutParams().width; 
       // For changing actual height and width 
      view.getLayoutParams().width = newWidth; 
       view.getLayoutParams().height = newHeight; 
view.requestLayout(); 

     } 

     @Override 
     public void onAnimationRepeat(Animation arg0) { 


     } 

     @Override 
     public void onAnimationStart(Animation arg0) { 


     } 

    }); 
+0

感謝を変更することができ、アニメーションのリスナーを使用してみてください。しかし、私の問題は次元を得ることです(あなたの提案として設定しないでください)。 – ndphu

+0

寸法を取得するにはgetHeight()、getWidth()関数を使用してください...ちょうど答えで編集されました – Maneesh

+0

ありがとうございます。しかし、どちらもScaleAnimationの前にビューの元の寸法を返します(ただし、ImageViewのサイズはすでに変更されています)。 – ndphu

関連する問題