Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d6ab513

Browse files
author
dinuscxj
committed
Multiple code improvements
1 parent 975cfdd commit d6ab513

File tree

6 files changed

+210
-280
lines changed

6 files changed

+210
-280
lines changed

README-ZH.md

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -168,16 +168,12 @@ public void computeRender(float renderProgress) {
168168
mEndTrim = -MATERIAL_INTERPOLATOR.getInterpolation(startTrimProgress);
169169
mRotation = START_TRIM_INIT_ROTATION + START_TRIM_MAX_ROTATION
170170
* MATERIAL_INTERPOLATOR.getInterpolation(startTrimProgress);
171-
invalidateSelf();
172-
return ;
173171
}
174172
//动画在(START_TRIM_DURATION_OFFSET, WAVE_DURATION_OFFSET]之间不断扩大水波纹的半径
175173
if (renderProgress <= WAVE_DURATION_OFFSET && renderProgress > START_TRIM_DURATION_OFFSET) {
176174
final float waveProgress = (renderProgress - START_TRIM_DURATION_OFFSET)
177175
/ (WAVE_DURATION_OFFSET - START_TRIM_DURATION_OFFSET);
178176
mWaveProgress = ACCELERATE_INTERPOLATOR.getInterpolation(waveProgress);
179-
invalidateSelf();
180-
return;
181177
}
182178
//动画在(WAVE_DURATION_OFFSET, BALL_SKIP_DURATION_OFFSET]之间通过PathMeasure获取当前跳动的小球
183179
//应该所在的坐标,不熟悉PathMeasure需要google和baidu一下了。做复杂动画必须了解的知识点
@@ -189,8 +185,6 @@ public void computeRender(float renderProgress) {
189185
/ (BALL_SKIP_DURATION_OFFSET - WAVE_DURATION_OFFSET);
190186
mPathMeasure.getPosTan(ballSkipProgress * mPathMeasure.getLength(), mCurrentPosition, null);
191187
mWaveProgress = 1.0f;
192-
invalidateSelf();
193-
return;
194188
}
195189
//动画在(BALL_SKIP_DURATION_OFFSET, BALL_SCALE_DURATION_OFFSET]之间通过mScale缩放跳动小球的半径
196190
if (renderProgress <= BALL_SCALE_DURATION_OFFSET && renderProgress > BALL_SKIP_DURATION_OFFSET) {
@@ -202,8 +196,6 @@ public void computeRender(float renderProgress) {
202196
} else {
203197
mScale = 2.0f - ACCELERATE_INTERPOLATOR.getInterpolation((ballScaleProgress - 0.5f) * 2.0f) * 2.0f;
204198
}
205-
invalidateSelf();
206-
return;
207199
}
208200
//动画的在[BALL_SCALE_DURATION_OFFSET, 1.0f]不断增加结束角度的大小(不改变开始角度的大小)从而不断减小绘制弧度的大小
209201
//并不断加大mRotation(正向增大, END_TRIM_INIT_ROTATION、 END_TRIM_MAX_ROTATION 都是正数)从而正向旋转
@@ -217,8 +209,6 @@ public void computeRender(float renderProgress) {
217209
//重置参数,防止不必要的绘制
218210
mScale = 1.0f;
219211
mPathMeasure = null;
220-
invalidateSelf();
221-
return;
222212
}
223213
}
224214
//小球跳动路径的核心路径计算函数

library/src/main/java/app/dinus/com/loadingdrawable/render/LoadingRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ private void setupDefaultParams(Context context) {
7070
mStrokeWidth = DEFAULT_STROKE_WIDTH * screenDensity;
7171
mCenterRadius = DEFAULT_CENTER_RADIUS * screenDensity;
7272

73-
mDuration = ANIMATION_DURATION;
73+
mDuration = ANIMATION_DURATION * 10;
7474
}
7575

7676
private void setupAnimators() {

library/src/main/java/app/dinus/com/loadingdrawable/render/circle/jump/DanceLoadingRenderer.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,6 @@ public void computeRender(float renderProgress) {
168168
if (renderProgress <= RING_FORWARD_END_ROTATE_DURATION_OFFSET && renderProgress > RING_FORWARD_START_ROTATE_DURATION_OFFSET) {
169169
final float forwardRotateProgress = (renderProgress - RING_FORWARD_START_ROTATE_DURATION_OFFSET) / (RING_FORWARD_END_ROTATE_DURATION_OFFSET - RING_FORWARD_START_ROTATE_DURATION_OFFSET);
170170
mRotation = DEGREE_360 * MATERIAL_INTERPOLATOR.getInterpolation(forwardRotateProgress);
171-
} else if (renderProgress > RING_FORWARD_END_ROTATE_DURATION_OFFSET) {
172-
mRotation = 0.0f;
173171
}
174172

175173
if (renderProgress <= CENTER_CIRCLE_FORWARD_END_SCALE_DURATION_OFFSET && renderProgress > CENTER_CIRCLE_FORWARD_START_SCALE_DURATION_OFFSET) {
@@ -201,6 +199,8 @@ public void computeRender(float renderProgress) {
201199
if (renderProgress <= RING_REVERSAL_END_ROTATE_DURATION_OFFSET && renderProgress > RING_REVERSAL_START_ROTATE_DURATION_OFFSET) {
202200
float scaledTime = (renderProgress - RING_REVERSAL_START_ROTATE_DURATION_OFFSET) / (RING_REVERSAL_END_ROTATE_DURATION_OFFSET - RING_REVERSAL_START_ROTATE_DURATION_OFFSET);
203201
mRotation = DEGREE_360 * MATERIAL_INTERPOLATOR.getInterpolation(scaledTime) - 360;
202+
} else if (renderProgress > RING_REVERSAL_END_ROTATE_DURATION_OFFSET) {
203+
mRotation = 0.0f;
204204
}
205205

206206
if (renderProgress <= BALL_REVERSAL_END_ENTER_DURATION_OFFSET && renderProgress > BALL_REVERSAL_START_ENTER_DURATION_OFFSET) {
@@ -245,8 +245,6 @@ public void computeRender(float renderProgress) {
245245
POINT_Y[i] += originCoordinateY;
246246
}
247247
}
248-
249-
invalidateSelf();
250248
}
251249

252250
@Override

library/src/main/java/app/dinus/com/loadingdrawable/render/circle/jump/GuardLoadingRenderer.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -132,18 +132,12 @@ public void computeRender(float renderProgress) {
132132
mEndTrim = -MATERIAL_INTERPOLATOR.getInterpolation(startTrimProgress);
133133
mRotation = START_TRIM_INIT_ROTATION + START_TRIM_MAX_ROTATION
134134
* MATERIAL_INTERPOLATOR.getInterpolation(startTrimProgress);
135-
136-
invalidateSelf();
137-
return ;
138135
}
139136

140137
if (renderProgress <= WAVE_DURATION_OFFSET && renderProgress > START_TRIM_DURATION_OFFSET) {
141138
final float waveProgress = (renderProgress - START_TRIM_DURATION_OFFSET)
142139
/ (WAVE_DURATION_OFFSET - START_TRIM_DURATION_OFFSET);
143140
mWaveProgress = ACCELERATE_INTERPOLATOR.getInterpolation(waveProgress);
144-
145-
invalidateSelf();
146-
return;
147141
}
148142

149143
if (renderProgress <= BALL_SKIP_DURATION_OFFSET && renderProgress > WAVE_DURATION_OFFSET) {
@@ -156,8 +150,6 @@ public void computeRender(float renderProgress) {
156150
mPathMeasure.getPosTan(ballSkipProgress * mPathMeasure.getLength(), mCurrentPosition, null);
157151

158152
mWaveProgress = 1.0f;
159-
invalidateSelf();
160-
return;
161153
}
162154

163155
if (renderProgress <= BALL_SCALE_DURATION_OFFSET && renderProgress > BALL_SKIP_DURATION_OFFSET) {
@@ -169,9 +161,6 @@ public void computeRender(float renderProgress) {
169161
} else {
170162
mScale = 2.0f - ACCELERATE_INTERPOLATOR.getInterpolation((ballScaleProgress - 0.5f) * 2.0f) * 2.0f;
171163
}
172-
173-
invalidateSelf();
174-
return;
175164
}
176165

177166
if (renderProgress >= BALL_SCALE_DURATION_OFFSET) {
@@ -184,8 +173,6 @@ public void computeRender(float renderProgress) {
184173

185174
mScale = 1.0f;
186175
mPathMeasure = null;
187-
invalidateSelf();
188-
return;
189176
}
190177
}
191178

0 commit comments

Comments
 (0)