Java ImageView.getX()在onWindowFocusChanged中返回0

Java ImageView.getX()在onWindowFocusChanged中返回0,java,android,Java,Android,我希望我错过了一些明显得可笑的东西。我有一个相对布局中带有imageView和textView的活动。显然,imageView会根据屏幕的大小改变屏幕上的位置,所以我尝试获取imageView开始的位置。getX()似乎是我要找的东西。但是,当我调用它时,返回的值总是0.0 起初,我在OnCreate方法中使用了它,然后我研究发现,视图在OnCreate方法中没有完成创建,并且可能不存在。所以我找到的一个解决方法是使用onWindowFocusChanged(布尔hasFocus)并在其中调用我

我希望我错过了一些明显得可笑的东西。我有一个相对布局中带有imageView和textView的活动。显然,imageView会根据屏幕的大小改变屏幕上的位置,所以我尝试获取imageView开始的位置。getX()似乎是我要找的东西。但是,当我调用它时,返回的值总是0.0

起初,我在OnCreate方法中使用了它,然后我研究发现,视图在OnCreate方法中没有完成创建,并且可能不存在。所以我找到的一个解决方法是使用onWindowFocusChanged(布尔hasFocus)并在其中调用我的维度。然而,这也不起作用。当我调试代码并单步执行这些行时,getX()行正在执行并返回0.0。在onWindowFocusChanged方法中的代码运行时,视图不应该已经创建了吗

这是我的密码:

@Override
public void onWindowFocusChanged (Boolean hasFocus) {
     super.onWindowFocusChanged(hasFocus);

     if (hasFocus) {
         ImageView myImage = findViewById(R.id.image1);
         TextView tv1 = findViewById(R.id.textView1);

         RelativeLayout.LayoutParams layoutparams;
         layoutparams = (RelativeLayout.LayoutParams) myImage.getLayoutParams();
         myImage.setLayoutParams(layoutparams);
         float image_start_pos = myImage.getX(); // <- this line returns 0.0

         ...
     }
}
@覆盖
WindowFocusChanged上的公共无效(布尔hasFocus){
super.onWindowFocusChanged(hasFocus);
如果(hasFocus){
ImageView myImage=findviewbyd(R.id.image1);
TextView tv1=findViewById(R.id.textView1);
RelativeLayout.LayoutParams LayoutParams;
layoutparams=(RelativeLayout.layoutparams)myImage.getLayoutParams();
设置布局参数(布局参数);

float image_start_pos=myImage.getX();//这当然是我的愚蠢。我把x和y混淆了。x是0,因为图像视图的左边缘在屏幕的边缘。GetY()给了我我要找的数字