我的第一篇博客,
最近项目中需要实现进度条动画,需要进度条后面Textview跟随一起运动,所以就想到用属性动画实现。直接上代码:
为了调用方便,我直接写了一个动画类
public class AnimationView { public static final int TOTAL_TIME = 1000; Context mContext; ImageView mView; int imageWidth; int imageHeight; boolean isAnimation; long time; ValueAnimator valueAnimator; public AnimationView(Context context, final ImageView imageView, int imageWidth , final int imageHeight, boolean isAnimation,long time) { mContext = context; mView = imageView; this.imageWidth = imageWidth; this.imageHeight = imageHeight; this.isAnimation = isAnimation; this.time = time; initView(); } public void initView(){ valueAnimator = ValueAnimator.ofFloat(1,imageWidth);//设置从1运动到图片宽度 valueAnimator.setTarget(mView);//为动画绑定view valueAnimator.setDuration(time).start();//设置动画执行时间,并启动动画 valueAnimator.setInterpolator(new LinearInterpolator());//设置动画匀速运行 valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator valueAnimator) {//监听动画变化,改变view宽度 float width = (float) valueAnimator.getAnimatedValue(); ViewGroup.LayoutParams layoutParams = mView.getLayoutParams(); layoutParams.width = (int) width; layoutParams.height = imageHeight; mView.setLayoutParams(layoutParams); } }); } }
需要用的时候直接new对象就可以了