下面列出了android.view.View#TRANSLATION_Y 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private Animator createAnimation(final View view, Property<View, Float> property,
float start, float end, float terminalValue, TimeInterpolator interpolator,
int finalVisibility) {
float[] startPosition = (float[]) view.getTag(R.id.lb_slide_transition_value);
if (startPosition != null) {
start = View.TRANSLATION_Y == property ? startPosition[1] : startPosition[0];
view.setTag(R.id.lb_slide_transition_value, null);
}
final ObjectAnimator anim = ObjectAnimator.ofFloat(view, property, start, end);
SlideAnimatorListener listener = new SlideAnimatorListener(view, property, terminalValue, end,
finalVisibility);
anim.addListener(listener);
anim.addPauseListener(listener);
anim.setInterpolator(interpolator);
return anim;
}
private AnimatorSet createAnimator(View from, View to, NavigationType navType, Direction direction) {
Property<View, Float> axis;
int fromTranslation;
int toTranslation;
int sign = direction.sign();
switch (navType) {
case GO:
axis = View.TRANSLATION_X;
fromTranslation = sign * -from.getWidth();
toTranslation = sign * to.getWidth();
break;
case SHOW:
axis = View.TRANSLATION_Y;
fromTranslation = direction == FORWARD ? 0 : from.getHeight();
toTranslation = direction == BACKWARD ? 0 : to.getHeight();
break;
default:
axis = View.TRANSLATION_X;
fromTranslation = 0;
toTranslation = 0;
break;
}
AnimatorSet set = new AnimatorSet();
if (from != null) {
set.play(ObjectAnimator.ofFloat(from, axis, 0, fromTranslation));
}
set.play(ObjectAnimator.ofFloat(to, axis, toTranslation, 0));
return set;
}
private Property<View, Float> getTranslateProperty() {
if (mOrientation == LinearLayoutManager.VERTICAL) {
return View.TRANSLATION_Y;
} else {
return View.TRANSLATION_X;
}
}
public AnimationAttributesVertical() {
mProperty = View.TRANSLATION_Y;
}
public AnimationAttributesVertical() {
mProperty = View.TRANSLATION_Y;
}
@Override
public Property<View, Float> getProperty() {
return View.TRANSLATION_Y;
}