显示视图并带有放大动画
public static void scaleIn(final View view) {
view.setVisibility(View.VISIBLE);
ScaleAnimation scaleIn = new ScaleAnimation(0f, 1f, 0f, 1f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
scaleIn.setDuration(DURATION);
scaleIn.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {}
@Override
public void onAnimationEnd(Animation animation) {
view.setScaleX(1f);
view.setScaleY(1f);
}
@Override
public void onAnimationRepeat(Animation animation) {}
});
view.startAnimation(scaleIn);
}
隐藏视图并带有缩小动画
public static void scaleOut(final View view) {
ScaleAnimation scaleOut = new ScaleAnimation(1f, 0f, 1f, 0f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
scaleOut.setDuration(DURATION);
scaleOut.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {}
@Override
public void onAnimationEnd(Animation animation) {
view.setVisibility(View.GONE);
}
@Override
public void onAnimationRepeat(Animation animation) {}
});
view.startAnimation(scaleOut);
}
ViewUtils完整代码:
import android.view.View;
import android.view.animation.ScaleAnimation;
import android.view.animation.Animation;
public class ViewUtils {
// 动画持续时间
private static final long DURATION = 300;
// 显示视图并带有放大动画
public static void scaleIn(final View view) {
view.setVisibility(View.VISIBLE);
ScaleAnimation scaleIn = new ScaleAnimation(0f, 1f, 0f, 1f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
scaleIn.setDuration(DURATION);
scaleIn.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {}
@Override
public void onAnimationEnd(Animation animation) {
view.setScaleX(1f);
view.setScaleY(1f);
}
@Override
public void onAnimationRepeat(Animation animation) {}
});
view.startAnimation(scaleIn);
}
// 隐藏视图并带有缩小动画
public static void scaleOut(final View view) {
ScaleAnimation scaleOut = new ScaleAnimation(1f, 0f, 1f, 0f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
scaleOut.setDuration(DURATION);
scaleOut.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {}
@Override
public void onAnimationEnd(Animation animation) {
view.setVisibility(View.GONE);
}
@Override
public void onAnimationRepeat(Animation animation) {}
});
view.startAnimation(scaleOut);
}
}
使用:
public void scaleOut(){
ViewUtils.scaleOut(viewPager);
ViewUtils.scaleOut(indicator);
}
public void scaleIn(){
ViewUtils.scaleIn(viewPager);
ViewUtils.scaleIn(indicator);
}