在按下按钮响应时,调用ImageView(或其他视图)上的getLocationOnScreen()方法会给出正确的值。但是,在从Activity :: onCreate()中调用getLocationOnScreen()方法时,我只得到[0,0]。如何解决这个问题?onCreate()是否为所有计算提前了?有没有更好的地方来启动动画?
在 onCreate()
中检查 getLocationOnScreen()
还为时过早。更好的地方是在视图级别上(如果您正在使用自定义视图),即在 onLayout()
中。只有在这里,视图的大小和位置才会被计算出来。如果您不创建自定义视图,则可以在活动级别上通过 onWindowFocusChanged()
(拥有焦点的活动)获取它。