中心点更改为左下角: mGenderSelectorLinearLayout.setPivotX(0); mGenderSelectorLinearLayout.setPivotY(mGenderSelectorLinearLayout.getHeight());
中心点更改为左上角:
mGenderSelectorLinearLayout.setPivotX(0);
mGenderSelectorLinearLayout.setPivotY(0);
中心点更改为右上角:
mGenderSelectorLinearLayout.setPivotX(mGenderSelectorLinearLayout.getWidth()); mGenderSelectorLinearLayout.setPivotY(0);
中心点更改为右下角:
mGenderSelectorLinearLayout.setPivotX(mGenderSelectorLinearLayout.getWidth()); mGenderSelectorLinearLayout.setPivotY(mGenderSelectorLinearLayout.getHeight());
动画:
public void showGenderSelectorAnimation() {
if (mGenderSelectorLinearLayout == null) {return;}
mGenderSelectorLinearLayout.post(new Runnable() {
@Override
public void run() {
mGenderSelectorLinearLayout.setPivotX(0);
mGenderSelectorLinearLayout.setPivotY(mGenderSelectorLinearLayout.getHeight());
ObjectAnimator scaleX = ObjectAnimator.ofFloat(mGenderSelectorLinearLayout, "scaleX", 0.0f, 1.05f);
ObjectAnimator scaleY = ObjectAnimator.ofFloat(mGenderSelectorLinearLayout, "scaleY", 0.0f, 1.05f);
AnimatorSet set = new AnimatorSet();
set.play(scaleX).with(scaleY);
set.setDuration(330);
set.start();
set.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
if (mGenderSelectorLinearLayout == null) {
return;
}
ObjectAnimator scaleX2 = ObjectAnimator.ofFloat(mGenderSelectorLinearLayout, "scaleX", 1.05f, 0.98f);
ObjectAnimator scaleY2 = ObjectAnimator.ofFloat(mGenderSelectorLinearLayout, "scaleY", 1.05f, 0.98f);
AnimatorSet set2 = new AnimatorSet();
set2.play(scaleX2).with(scaleY2);
set2.setDuration(150);
set2.start();
set2.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
if (mGenderSelectorLinearLayout == null) {
return;
}
ObjectAnimator scaleX3 = ObjectAnimator.ofFloat(mGenderSelectorLinearLayout, "scaleX", 0.98f, 1.0f);
ObjectAnimator scaleY3 = ObjectAnimator.ofFloat(mGenderSelectorLinearLayout, "scaleY", 0.98f, 1.0f);
AnimatorSet set3 = new AnimatorSet();
set3.play(scaleX3).with(scaleY3);
set3.setDuration(300);
set3.start();
}
});
}
});
}
});
}
本文介绍了一种使用Java实现的视图动画效果,包括如何更改视图的旋转中心,并通过ObjectAnimator实现缩放动画。该动画分为三个阶段:初始放大、轻微收缩及最终恢复原状。
2932

被折叠的 条评论
为什么被折叠?



