Android ImageView:getWidth()与getLayoutParams()不同。宽度?
这是我创建新ImageView的源代码: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 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