Как получить новую ширину и высоту View после ScaleAnimation - PullRequest
2 голосов
/ 17 ноября 2011

Я использовал ScaleAnimation, чтобы изменить размер моего ImageView. Но после завершения анимации, как я могу получить размер моего ImageView или растровое изображение в нем. Спасибо

Вот мой код:

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 Ответ

1 голос
/ 17 ноября 2011

попробуйте использовать слушатель анимации, где в конце анимации вы можете изменить ширину и высоту

  <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) {


        }

     });
...