ImageView:getWidth()与getLayoutParams()。width不同?

时间:2013-10-30 11:07:50

标签: android imageview width layoutparams

这是我创建新ImageView的源代码:

    ImageView image = new ImageView(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            params.width = screen_dimens(0.5, "w");
            params.height = screen_dimens(0.5, "w");
            image.setLayoutParams(params);

screen_dimens(0.5, "w") =屏幕宽度的50%)

但是现在当我想获得图像的宽度时,我得到以下结果:
image.getWidth()=> 0
image.getLayoutParams()。width => 360

现在这两个功能有什么区别?如何设置图像宽度,以便getWidth()方法也返回正确的值?

3 个答案:

答案 0 :(得分:3)

即使您使用LayoutParams设置了ImageView或任何视图的宽度和高度, imageView.getWidth()始终返回0,直到在其父项中绘制。

答案 1 :(得分:2)

用它来设置宽度和高度:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
iv.setLayoutParams(layoutParams);

答案 2 :(得分:0)

你可以用

    image.post(new Runnable() {
        public void run() {
            image.getMeasuredHeight();
        }
    });

而不是

   image.getWidth()