2013-07-31 3 views
3

мне нужно сделать масштабный управляемым анимированный диалог .. Я хочу сделать это с отскоком эффектом я попытался с отскоком interpolaterкак отредактировать интерполятор анимации андроида?

<scale xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="500" 
    android:fromXScale="0" 
    android:fromYScale="0" 
    android:interpolator="@android:anim/bounce_interpolator" 
    android:toXScale="1" 
    android:toYScale="1" /> 

Я хочу, чтобы изменить эффект отскока сделать это медленнее/быстрее и размер отказов в , Я не нашел ничего, T пытался сделать это с наборами

<set > 
    <scale 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="500" 
     android:fromXScale="0" 
     android:fromYScale="0" 
     android:toXScale="1" 
     android:toYScale="1" /> 
    <scale 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="100" 
     android:fromXScale="1" 
     android:fromYScale="1" 
     android:startOffset="500" 
     android:toXScale=".8" 
     android:toYScale=".8" /> 
    <scale 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="100" 
     android:fromXScale=".8" 
     android:fromYScale=".8" 
     android:startOffset="600" 
     android:toXScale="1" 
     android:toYScale="1" /> 
</set> 

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

ответ

2

Используйте ipfx.org для создания пользовательских интерполяторов.
Возьмите пример отказов и отредактируйте его в соответствии с вашими потребностями.
http://ipfx.org/?p=7ffffffe575efffe9e02fffed8f6fffe&l=2f13c5ac138b3d6ad338a5a77a8386807d6e

чем использовать созданный интерпол в приложении()

import org.ipfx.Interpolator; 

... 
... 

final org.ipfx.Interpolator interpolator = org.ipfx.Interpolator.parseUrl(urlData); 

ObjectAnimator animator = ObjectAnimator.ofFloat(...); 
animator.setDuration(1000); 

animator.setInterpolator(new TimeInterpolator() { 
    @Override 
    public float getInterpolation(float input) { 
     return interpolator.calc(input); 
    } 
}); 

animator.start(); 
Смежные вопросы