为什么屏幕上的位置总是返回 0



我想知道图像视图的位置,但它总是返回0既不返回x坐标,也不返回y坐标。这是我的代码

    ImageView credits = (ImageView) v.findViewById(R.id.credits);
    int[] coor = {0,0};
    credits.getLocationOnScreen(coor);
    x = coor[0];
    y = coor[1];

我已经使用了很多方法,例如 getTop() 等,但仍然返回 0。

有人知道为什么吗?我是安卓新手,所以我非常感谢任何答案。

您是否在onCreate方法中执行此操作?

如果是,现在在onCreate()中检查getLocationOnScreen()还为时过早

这里的解决方案:https://stackoverflow.com/a/13244091/5392383

您是否onCreate()方法中使用此代码?

快速搜索后,我找到了这篇文章。

简而言之,它说onCreate()使用getLocationOnScreen还为时过早,您应该在方法onWindowFocusChanged()当您的Activity获得焦点时使用它。

  credits.post(new Runnable() {
        @Override
        public void run() {
           int[] coor = {0,0};
           credits.getLocationOnScreen(coor);
           x = coor[0];
           y = coor[1]; 
        }
    })

像这样尝试

请尝试这个

  @Override
    protected void onResume() {
        super.onResume();
        ImageView credits = (ImageView) v.findViewById(R.id.credits);
        int[] coor = {0,0};
        credits.getLocationOnScreen(coor);
        x = coor[0];
        y = coor[1];
    }

相关内容

  • 没有找到相关文章

最新更新