1.将view在x方向上进行平移
ObjectAnimator translationX = ObjectAnimator.ofFloat(lpContent, "translationX", 0, 360);
translationX.setInterpolator(new AccelerateDecelerateInterpolator());
translationX.setDuration(1000);
translationX.addListener(this);
translationX.start();
2.将view在x,y方向上进行缩放
AnimatorSet animatorSet = new AnimatorSet();
ObjectAnimator scaleX = ObjectAnimator.ofFloat(child, "scaleX", 1, 1.5);
ObjectAnimator scaleY = ObjectAnimator.ofFloat(child, "scaleY", 1, 1.5);
animatorSet .setDuration(dutationTime);
animatorSet .setInterpolator(new LinearOutSlowInInterpolator());
animatorSet .play(scaleX).with(scaleY);
animatorSet .start();
3.将view在y方向上进行上下循环移动,实现view跳动的效果
TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 0, -10);
translateAnimation .setRepeatCount(Animation.INFINITE);
translateAnimation .setRepeatMode(Animation.REVERSE);
translateAnimation .setDuration(300);
translateAnimation .start();
4.改变view的透明度的同时,去改变view2的高度
WrapperView wrapperView= new WrapperView(view);
PropertyValuesHolder pvh1=PropertyValuesHolder.ofFloat("alpha",0f,1f);
ObjectAnimator.ofPropertyValuesHolder(view2,pvh1)
.setDuration(500)
.start();
PropertyValuesHolder pvh2=PropertyValuesHolder.ofInt("height", startHeight, endHeight);
ObjectAnimator.ofPropertyValuesHolder(wrapperView,pvh2)
.setDuration(500)
.start();
public class WrapperView {
private View myView;
public WrapperView (View view) {
myView = view;
}
public int getHeight() {
return myView.getLayoutParams().height;
}
public void setHeight(int height) {
myView.getLayoutParams().height = height;
myView.requestLayout();
}
}