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

时间:2017-01-05 04:50:02

标签: android android-imageview android-screen

我想知道图片视图的位置,但它始终返回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。

任何人都知道为什么?我是android的新手,所以我真的很感激任何答案。

4 个答案:

答案 0 :(得分:1)

你是否在onCreate方法中这样做?

如果是,现在检查onCreate()

中的getLocationOnScreen()为时尚早

此处的解决方案:https://stackoverflow.com/a/13244091/5392383

答案 1 :(得分:0)

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

快速搜索后,我找到THIS POST

很快,它说onCreate()使用getLocationOnScreen为时尚早,当onWindowFocusChanged()获得焦点时,您应该在方法Activity旁边使用它。

答案 2 :(得分:0)

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

试试这个

答案 3 :(得分:0)

请试试这个

  @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];
    }