AnimationSet воспроизводится в обратном порядке - PullRequest
3 голосов
/ 06 марта 2012

Я использую AnimationSet для создания многих анимаций Переводчика. В этом примере я хочу переместить ImageView от 0 до 700 (вне экрана) и от -700 до 0 (вид переместится в крайнее правое положение и снова войдет в крайнее левое положение). Я использую этот код:

    AnimationSet set = new AnimationSet(true);
    set.setInterpolator(new AccelerateDecelerateInterpolator());
    set.setFillEnabled(true);
    if(traject!=null){
        TranslateAnimation tmpAnim = null;
        set.setDuration(duration);
        int d = traject.size()!=0 ? duration/traject.size() : duration;

        for(int i =0; i<traject.size();i++){
            tmpAnim = new TranslateAnimation( traject.get(i).getStartX(),
                                            traject.get(i).getEndX(),
                                            traject.get(i).getStartY(),
                                            traject.get(i).getEndY() );
            tmpAnim.setDuration(d);
            tmpAnim.setFillAfter(true);
            tmpAnim.setStartOffset(d*i);
            set.addAnimation(tmpAnim);
        }
    }
  • traject - это массив, содержащий все начальные и конечные точки TranslateAnimation

Но в моем тестовом примере анимация идет от -700 до 700. Я попытался переключить порядок TranslateAnimations, используя setStartTime () вместо setStartOffset (), пропустив вызов setStartOffset (), результат тот же. Ты хоть представляешь, что мне не хватает?

...