Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ImageView:getWidth()与getLayoutParams()不同。宽度?_Android_Imageview_Width_Layoutparams - Fatal编程技术网

Android ImageView:getWidth()与getLayoutParams()不同。宽度?

Android ImageView:getWidth()与getLayoutParams()不同。宽度?,android,imageview,width,layoutparams,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"); pa

这是我创建新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);
屏幕尺寸(0.5,“w”)
=屏幕宽度的50%)

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


那么这两个函数之间的区别是什么呢?如何设置图像宽度,以便
getWidth()
方法也返回正确的值?

使用此设置宽度和高度:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
iv.setLayoutParams(layoutParams);
你可以用

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

   image.getWidth()

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

这解释了上述问题的asnwer