2012-08-13 73 views
1

我有2個視圖使用相同的動畫,在此動畫期間,這些視圖應該更改您的Z順序例如視圖A在動畫過程中位於視圖B中我更改了該順序,這與viewA或viewB .bringToFront();但是更新不是直接的,我需要在確切點改變Z順序。在動畫期間更改Z順序

謝謝。

回答

2

我解決這個問題如下:

第一動畫設置自定義內插器,你的類需要實現的ICustomInterpolator

animation.setInterpolator(new CustomInterpolator(this)); 
a.startAnimation(animation); 
b.startAnimation(animation); 

public void currentProgress(float p, float time) { 
    if(time == yourTime){ 
     a.bringToFront(); 
     a.invalidate(); 
     b.invalidate(); 
     a.requestLayout(); 
     b.requestLayout(); 
    } 
} 

的currentProgress是Inteface方法的自定義插補器:

public interface ICustomInterpolator { 
    public void currentProgress(float p, float time); 
} 

in customInterpolator:

public class CustomInterpolator extends 
    AccelerateDecelerateInterpolator { 

    private ICustomInterpolator delegate; 

    public <T extends ICustomInterpolator> CustomInterpolator(T delegate) { 
     super(); 
     this.delegate = delegate; 
    } 

    @Override 
    public float getInterpolation(float input) { 
     delegate.currentProgress(input); 
     return super.getInterpolation(input); 
    } 
}