В Android Как перевести в абсолютную точку на экране

У меня есть Imageview и ImageButton, и я хочу, чтобы Imageview переместился в позицию кнопки изображения.

Imageview и его расположение на экране

myAnimation1.getLocationInWindow(imagePos);

Кнопка изображения и ее расположение на экране

ImageButton.getLocationInWindow(buttonPos);

Чтобы перевести или переместить изображение на кнопку изображения, я попытался

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

Но это не работает. Переводы не отображаются на экране. Любая помощь будет оценена много!! Заранее спасибо.


person Aparna    schedule 30.01.2015    source источник


Ответы (2)


Во-первых, если вы не получаете правильные координаты от 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];

            }
        });
person Bernardo So    schedule 30.01.2015
comment
Спасибо .. Я попробую это. Также я хотел знать, действительно ли Animation.ABSOLUTE перемещает изображение из одной абсолютной позиции в другую, верно? - person Aparna; 30.01.2015
comment
Я еще не пробовал, но думаю да! (stackoverflow.com/questions/16727647/< /а>) - person Bernardo So; 02.02.2015

Вы не установили продолжительность и даже не запустили анимацию.

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

А затем попробуйте поиграть с атрибутами анимации, чтобы получить желаемый результат.

person Praveena    schedule 30.01.2015
comment
Я установил продолжительность и запустил анимацию. Я просто не показывал ее здесь, потому что хотел просто вставить соответствующий код. - person Aparna; 30.01.2015
comment
В каком методе вы вызываете эту анимацию? Потому что в методе onCreate ваши представления не будут отображаться в окне. - person Praveena; 30.01.2015