Как определить флип анимацию - PullRequest
4 голосов
/ 22 июля 2011

Я хочу сделать флип-анимацию моего ImageView после того, как нажму на нее.Мое намерение состоит в том, чтобы уменьшить ширину изображения до 0 и сразу же после этого увеличить его до 1,0.Это должно имитировать переворот изображения.

Это то, что у меня есть на самом деле.После нажатия на изображение оно сжимает изображение с 1,0 до 0.

Мой вопрос: как продолжить расширение части анимации?

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
    <scale
            android:interpolator="@android:anim/linear_interpolator"
            android:fromXScale="1.0"
            android:toXScale="0.0"
            android:fromYScale="1.0"
            android:toYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="200" />
 </set>

РЕДАКТИРОВАТЬ

Я добавил еще один блок для обратной части анимации, но он не работает должным образом.Кажется, что startOffset не используется или что-то в этом роде.Другими словами, анимация испорчена, кажется, что этот дополнительный код влияет и на первую часть анимации.Что я делаю не так?

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
    <scale
            android:interpolator="@android:anim/linear_interpolator"
            android:fromXScale="1.0"
            android:toXScale="0.0"
            android:fromYScale="1.0"
            android:toYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="200" />
    <set android:startOffset="200">
        <scale
            android:interpolator="@android:anim/linear_interpolator"
            android:fromXScale="0.0"
            android:toXScale="1.0"
            android:fromYScale="1.0"
            android:toYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="200" />
    </set>
 </set>

Ответы [ 2 ]

1 голос
/ 25 июля 2011

После следующих исследований и разработок я обнаружил, что этот фрагмент кода в точности выполняет то, что я хочу.

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/linear_interpolator">

    <scale
            android:fromXScale="1.0"
            android:toXScale="0.0"
            android:fromYScale="1.0"
            android:toYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="200"
            android:repeatCount="2"
            android:repeatMode="reverse"/>

    </set>

Это означает, что я добавил repeatMode и repeatCount к определению анимации, и это работает, как я и ожидал.

1 голос
/ 22 июля 2011

Похороните еще <set> <scale /> </set> в вашем первом сете, но после первоначального масштаба. Это заставит их стрелять последовательно.

См. Эту страницу для примера. http://developer.android.com/guide/topics/graphics/view-animation.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...