同じアニメーションの 2 つのビューがあります。このアニメーション中に、これらのビューは Z オーダーを変更する必要があります。たとえば、ビュー A はアニメーション中にビュー B の上にあります。この順序を変更します。 ; しかし、更新は即時ではなく、正確な時点でこの Z オーダーを変更する必要があります。
ありがとう。
これを次のように解決します。
最初にアニメーションでカスタム インターポレーターを設定します。クラスは 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 は、カスタム インターポレーターのインターフェイス メソッドです。
public interface ICustomInterpolator {
public void currentProgress(float p, float time);
}
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);
}
}