2014-09-23 2 views
0

Я пытаюсь выполнить анимацию потрясает ImageView и переместив же ImageView слева направо на time.I написали мои аним XML файлы:Как выполнить две анимации одновременно на изображении?

shake_move.xml:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
      android:duration="1500" 
      android:fromYDelta="0" 
      android:interpolator="@anim/cycle" 
      android:toYDelta="15"> 
    <set> 
    <translate 
     android:duration="2500" 
     android:fromXDelta="0" 
     android:toXDelta="100%p" /> 
    </set> 

</translate> 

cycle.xml:

<?xml version="1.0" encoding="utf-8"?> 
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" 
        android:cycles="4" 
    /> 

, используя выше XML-файла я реализованного следующим образом:

Animation shakMoveAnim = AnimationUtils.loadAnimation(MoveAnimImage.this, R.anim.shake_move); 
    ((ImageView)findViewById(R.id.imageView1)).startAnimation(shakMoveAnim); 

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

Пожалуйста, помогите мне на проделайте как встряхнуть и перемещать вид изображения одновременно

ответ

0

Animation Set

пользователя этого. Добавьте несколько анимаций в AnimationSet.

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="true" 
    android:fillAfter="true"> 

    <translate 
     android:duration="300" 
     android:startOffset="0" 
     android:fromXDelta="0" 
     android:fromYDelta="0" 
     android:toXDelta="100" 
     android:toYDelta="100" /> 

    <scale 
     android:duration="300" 
     android:startOffset="300" 
     android:fromXScale="1.0" 
     android:fromYScale="1.0" 
     android:toXScale="0.0" 
     android:toYScale="0.0" /> 

    </set> 
+0

Можете ли вы представить какой-либо практический пример? –

0

Вы взяли набор только с одной трансляционной анимацией. Это не сработает.

Попробуйте поместить оба перевода анимации внутри одного набора.

Пример фрагмента:

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

    <translate 
     android:duration="2500" 
     android:fromYDelta="0" 
     android:toYDelta="15" /> 
    <translate 
     android:duration="2500" 
     android:fromXDelta="0" 
     android:toXDelta="100%p" /> 

</set> 

Вы также можете дать этому попытку:

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

    <rotate 
     android:duration="2500" 
     android:fromDegrees="-5" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:repeatCount="5" 
     android:repeatMode="reverse" 
     android:toDegrees="5" /> 
    <translate 
     android:duration="2500" 
     android:fromXDelta="0" 
     android:toXDelta="100" 
     android:repeatCount="0"/> 

</set> 

Вам нужно будет исправить RepeatCount и дельту согласно вашему требованию.

Надеюсь, это поможет.

Смежные вопросы