анимация для перехода между видами с вращением по оси Z с восприятием глубины

Я пытаюсь создать анимацию для перехода между двумя представлениями, оба из которых являются ExpandableListViews. Внешний вид, который мне нужен, описан на изображении ниже.

Я попытался использовать shrink_to_middle и grow_from_middle в качестве анимации выхода / входа моего ViewAnimator - и это близко, но не совсем правильно - с моим текущим сжатием / увеличением, поскольку анимация имеет место, как правый, так и левый края виды имеют одинаковую высоту, что не придает анимации глубины.

Я не знаю, как лучше всего объяснить, что я хочу, поэтому я нарисовал изображение, но в любом случае ... Я хочу получить трехмерный вид анимации, в которой вид поворачивается на ось z. Предполагая, что мы используем простую анимацию shrink_to_middle и grow_from_middle в качестве отправной точки (которая не обеспечивает трехмерный вид). Чтобы обеспечить трехмерный вид, у выходной анимации правый край будет постепенно уменьшаться по мере того, как вид сжимается до середина; в анимации in левый край будет постепенно увеличиваться по мере увеличения изображения от середины.

Изображения с 1 по 4 будут выходной анимацией (для вида №1), а изображения 5–8 будут входящей анимацией (для просмотра №2).

animation to transition between views

Заранее благодарим.

Изменить : К вашему сведению, вот мое текущее сжатие до середины и рост из XML-файлов средней анимации

shrink_to_middle.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:interpolator="@android:anim/linear_interpolator"
        android:fromXScale="1.0" android:toXScale="0.0" android:fromYScale="1.0"
        android:toYScale="1.0" android:fillAfter="false" android:duration="500" />
    <translate android:fromXDelta="0" android:toXDelta="50%"
        android:duration="500" />
</set>

grow_from_middle.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:interpolator="@android:anim/linear_interpolator"
        android:fromXScale="0.0" android:toXScale="1.0" android:fromYScale="1.0"
        android:toYScale="1.0" android:fillAfter="false" android:startOffset="200"
        android:duration="500" />
    <translate android:fromXDelta="50%" android:toXDelta="0"
        android:startOffset="200" android:duration="500" />
</set>
9
задан Ed Sinek 9 October 2011 в 07:34
поделиться