RelativeLayout MarginLayoutParams изменить размер ImageView сделать его очень маленьким - PullRequest
0 голосов
/ 27 июня 2011

У меня есть ImageView, и его src является списком анимаций, когда я пытаюсь установить его поля программно, он также изменяет размер изображения очень и очень маленьким.

        ImageView hand = (ImageView)rlRoot.findViewById(R.id.ivHandAnimation);

        MarginLayoutParams marginsParams = new MarginLayoutParams(hand.getLayoutParams());
        marginsParams.setMargins(this.getLeft(), rlRoot.getMeasuredHeight() - 20, 0, 0);
        RelativeLayout.LayoutParams lp = new LayoutParams(marginsParams);
        //lp.height = rlRoot.findViewById(R.id.btnHole_14).getMeasuredHeight();
        hand.setLayoutParams(lp);

        if (hand != null) {

            hand.setVisibility(View.VISIBLE);
            AnimationDrawable frameAnimation = (AnimationDrawable)hand.getDrawable();
            frameAnimation.setCallback(hand);
            frameAnimation.setVisible(true, true);
        }

Я попытался установить lp.heightНо это не работает.И я также создаю LayoutParams со следующим кодом.

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2013

Я забыл ответить на этот вопрос.В моем случае, когда ImageView изменил размеры, он сохраняет свои первые ширину и высоту, когда я устанавливаю поля hand.setLayoutParams(lp);, используя свойство android:adjustViewBounds, чтобы решить эту проблему для меня.

0 голосов
/ 27 июня 2011

Проблема в rlRoot.getMeasuredHeight() - 20. rlRoot.getMeasuredHeight() внутри метода onCreate возвращает 0, поэтому rlRoot.getMeasuredHeight () -20 означает, что вы уменьшаете высоту на 20 пикселей.

...