在android中如何转换为屏幕中的绝对点

时间:2015-01-30 03:33:47

标签: android translate-animation

我有一个Imageview和一个ImageButton,并希望Imageview移动到imagebutton的位置。

Imageview及其在屏幕上的位置

myAnimation1.getLocationInWindow(imagePos);

图像按钮及其在屏幕上的位置

ImageButton.getLocationInWindow(buttonPos);

要将Imageview转换或移动到Imagebutton,我试过

Animation move = new TranslateAnimation(Animation.ABSOLUTE,imagePos[0],Animation.ABSOLUTE,buttonPos[0],Animation.ABSOLUTE,imagePos[1],Animation.ABSOLUTE,buttonPos[1]);

但它不起作用。屏幕上看不到翻译。任何帮助将受到很多赞赏!谢谢你提前。

2 个答案:

答案 0 :(得分:1)

首先,如果你没有从getLocationInWindow获得正确的坐标,请尝试获取这样的坐标:

ImageButton.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            public void onGlobalLayout() {

              ImageButton.getViewTreeObserver().removeGlobalOnLayoutListener(this);

              int[] locations = new int[2];
              ImageButton.getLocationOnScreen(locations);
              // x is locations[0];
              // y is locations[1];

            }
        });

答案 1 :(得分:0)

您没有设置持续时间,甚至没有开始动画。

move.setDuration(1000);
imageView.startAnimation(move);

然后尝试使用动画属性来获得所需的结果