如何获取布局相对于屏幕的位置

时间:2011-06-13 06:03:53

标签: android android-animation

我想要沿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位置布局为向上。

4 个答案:

答案 0 :(得分:3)

这是我的答案,

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

玩得开心。@。@

答案 1 :(得分:0)

我想,我不确定你是否必须制作一个'画布'然后使用选项来找到x和y坐标的位置..可能还有其他选项,但我这样做只使用了这个

答案 2 :(得分:0)

也许你的解决方案是

View.getLocationOnScreen(int[] location)

如此处所述:Getting View's coordinates relative to the root layout

答案 3 :(得分:0)

在活动类的onwindowsfocuschange()中编写代码...在那里,您将获得有关您在屏幕上的位置的参数以及任何视图的getLocationonscreen()方法。