如何获得Layout相对于屏幕的位置。

| 我想为沿y轴的相对布局设置动画,以便获得其在y轴上的位置。 我尝试了很多事情,例如:
getY()
getTop()
getScreenLocation()
依此类推,但是一切都返回0。 我如何找到该职位? 以下是代码
ImageView advancetab = (ImageView) findViewById(R.id.imageView4);
RelativeLayout advancelayout = (RelativeLayout) findViewById(R.id.relativeLayout2);
final ObjectAnimator anim = ObjectAnimator.ofFloat(advancelayout, \"Y\", 
            advancelayout.getY(),advancelayout.getY()-100);
    anim.setDuration(1000);     
advancetab.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            anim.start();
        }
    });
当我单击图像时,布局从0,0位置向上移动。     
已邀请:
        这是我的答案,
private int[] getViewLocations(View view) {
  int[] locations = new int[2];
  view.getLocationOnScreen(locations);
  return locations;
}
这样使用
int[] locations = getViewLocations(yourcustomview);
int x = locations[0]; // x position of left
int y = locations[1]; // y position of top
玩得开心。@。@     
        我认为,我不确定您是否必须先制作一个\'canvas \',然后使用这些选项来查找x和y坐标的位置。可能还有其他选项,但是我仅使用此选项。     
        也许您的解决方案是
View.getLocationOnScreen(int[] location)
如此处报道:获取View相对于根布局的坐标     
        确实在活动类的onwindowsfocuschange()内编写代码...通过任何视图的getLocationonscreen()方法,您将获得有关屏幕上位置的参数。     

要回复问题请先登录注册