80,362
社区成员
发帖
与我相关
我的任务
分享
// 判断当前角度偏移方向
if (mCurrentAngle > mTargetAngle) {
mCurrentAngle = mCurrentAngle - mVelocity;
if (mCurrentAngle < mTargetAngle) {
mCurrentAngle = mTargetAngle;
}
} else if (mCurrentAngle < mTargetAngle) {
mCurrentAngle = mCurrentAngle + mVelocity;
if (mCurrentAngle > mTargetAngle) {
mCurrentAngle = mTargetAngle;
}
}
上面这一段是绘制前的判断,mCurrentAngle是当前角度,用你的血槽就是当前血量,mTargetAngle就是目标角度,绘制使用当前角度,每次绘制判断前将当前角度增加,如果不超过目标角度就不作处理,超过就让他等于目标角度,然后绘制
// 如果当前进度不等于目标进度,继续绘制
if (mCurrentAngle != mTargetAngle) {
invalidate();
}
绘制完后判断当前角度是否等于目标角度,如果等于,则不操作,不等于,则刷新继续绘制,这样就有滑动的感觉了