HistoryChartView.java 文件源码

java
阅读 28 收藏 0 点赞 0 评论 0

项目:YiZhi 作者:
/**
 * 开启动画
 */
private void startAnimation() {
    if (mValueAnimator != null) {
        mValueAnimator.cancel();
    }
    final float targetTempLength = mTargetTempPathMeasure.getLength();
    final float roomTempLength = mRoomTempPathMeasure.getLength();
    mValueAnimator = ValueAnimator.ofFloat(1, 0);
    mValueAnimator.setDuration(ANIM_DURATION);
    // 减速插值器
    mValueAnimator.setInterpolator(new DecelerateInterpolator());
    mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            float fraction = (Float) animation.getAnimatedValue();
            // 更新mtargetTempEffect
            mtargetTempEffect = new DashPathEffect(new float[]{
                    targetTempLength, targetTempLength}, fraction
                    * targetTempLength);
            targetTempPaint.setPathEffect(mtargetTempEffect);
            // 更新mRoomTempEffect
            mRoomTempEffect = new DashPathEffect(new float[]{
                    roomTempLength, roomTempLength}, fraction
                    * roomTempLength);
            roomTempPaint.setPathEffect(mRoomTempEffect);
            // 更新rect绘制fraction进度
            mRectFration = 1 - fraction;// fraction是1->0 我们需要的柱形图绘制比例是0->1
            postInvalidate();
        }
    });
    mValueAnimator.start();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号