Android - TranslateAnimate от одного вида к другому - PullRequest
2 голосов
/ 15 января 2012

Я хочу включить в приложение простую анимацию, в которой виджет view перемещается в другой виджет view .

Код, который я написал:

TranslateAnimation animate = new TranslateAnimation(view1.getTranslationX(), view1.getTranslationY(), view2.getTranslationX(), view2.getTranlationY());
animate.setDuration(500);
view1.startAnimation(animate);

Проблема в том, что view1 - это пользовательское представление, унаследованное от ViewSwitcher, тогда как view2 - это Button.getTranslation () не дает такого исключения метода для обоих.

Как я могу получить позицию представления на экране, и это правильный способ сделать анимацию?

Примечание: ViewSwitcher является частью элемента ListView, поэтому ему также необходимо пересечь границу ListView, чтобы добраться до Button (на всякий случай, если это имеет значение).

Ответы [ 2 ]

1 голос
/ 15 января 2012

Методы типа getTranslationX() и getTranslationY() просто возвращают значение смещения, которое может быть применено к фактической позиции просмотра, а не к самой позиции. Вы захотите использовать такие методы, как getLeft() и getTop(), чтобы получить значение позиции x / y представления относительно его родителя (в данном случае, ListView).

Если вам нужно больше глобальных координат, используйте getLocationInWindow() или getLocationOnScreen(), чтобы получить позицию представления относительно глобальной иерархии отображения. Эти методы не возвращают позицию, а скорее заполняют ее в int[], который вы указываете в качестве параметра.

Все эти методы могут быть вызваны на любом View.

НТН

0 голосов
/ 15 января 2012

В принципе, я не уверен, если вы все сделали правильно.

На мой взгляд, самый простой способ реализовать анимацию в Android - это использовать ViewFlipper.Может быть, вам стоит подумать об этом:

Здесь у вас есть сообщение об использовании перевода и альфа-анимации с ViewFlipper на случай, если вы последуете моему предложению http://kevinrohling.wordpress.com/2011/01/25/using-a-slide-transition-with-viewflipper/

...