这是我创建新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()
方法也返回正确的值?
答案 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()