我正在尝试返回我的ImageView的宽度和高度,但一直返回0.我在OnCreate()中调用ImageView.getWidth()和ImageView.getHeight(),我相信ImageView还没有有足够的时间初始化,因此我得到的错误:
java.lang.IllegalArgumentException:width和height必须是> 0
我的问题是:检索ImageView的宽度和高度的好地方在哪里,所以我知道它有足够的时间进行正确的初始化?
注意:我尝试过onWindowFocusChanged()但是遇到了同样的问题。
干杯!
答案 0 :(得分:3)
引自“Hello Android(第三版)”第81页:
新Android开发人员常犯的一个错误是在其构造函数中使用视图的宽度和高度。当调用视图的构造函数时,Android不知道视图的大小,因此大小设置为零。实际尺寸在布局阶段计算,这在施工后但在绘制任何东西之前发生。您可以使用onSizeChanged()方法在知道值时通知它们,或者稍后可以使用getWidth()和getHeight()方法,例如在onDraw()方法中。