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

Skip to content

Commit bf31801

Browse files
author
dinuscxj
committed
format code
1 parent 93be6cc commit bf31801

File tree

6 files changed

+116
-117
lines changed

6 files changed

+116
-117
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@
2424
ImageView.setImageDrawable(new LoadingDrawable(new GearLoadingRenderer(Context)));
2525
ImageView.setImageDrawable(new LoadingDrawable(new WhorlLoadingRenderer(Context)));
2626
ImageView.setImageDrawable(new LoadingDrawable(new LevelLoadingRenderer(Context)));
27-
ImageView.setImageDrawable(new new LoadingDrawable(new MaterialLoadingRenderer(Context)));
27+
ImageView.setImageDrawable(new LoadingDrawable(new MaterialLoadingRenderer(Context)));
2828
```
2929

3030
Used with View
3131
```java
3232
View.setBackground(new LoadingDrawable(new GearLoadingRenderer(Context)));
3333
View.setBackground(new LoadingDrawable(new WhorlLoadingRenderer(Context)));
3434
View.setBackground(new LoadingDrawable(new LevelLoadingRenderer(Context)));
35-
View.setBackground(new new LoadingDrawable(new MaterialLoadingRenderer(Context)));
35+
View.setBackground(new LoadingDrawable(new MaterialLoadingRenderer(Context)));
3636
```
3737

3838
## License

library/src/main/java/app/dinus/com/loadingdrawable/GearLoadingRenderer.java

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,22 @@
1717
import android.view.animation.LinearInterpolator;
1818

1919
public class GearLoadingRenderer extends LoadingRenderer {
20+
private static final Interpolator LINEAR_INTERPOLATOR = new LinearInterpolator();
2021
private static final Interpolator ACCELERATE_INTERPOLATOR = new AccelerateInterpolator();
2122
private static final Interpolator DECELERATE_INTERPOLATOR = new DecelerateInterpolator();
2223

23-
private static final float START_SCALE_DURATION_OFFSET = 0.3f;
24+
private static final float FULL_ROTATION = 1080.0f;
25+
private static final float ROTATION_FACTOR = 0.25f;
26+
private static final float MAX_PROGRESS_ARC = 0.17f;
2427
private static final float START_TRIM_DURATION_OFFSET = 0.5f;
28+
private static final float START_SCALE_DURATION_OFFSET = 0.3f;
2529
private static final float END_TRIM_START_DELAY_OFFSET = 0.5f;
2630
private static final float END_SCALE_START_DELAY_OFFSET = 0.7f;
2731

2832
private static final int GEAR_COUNT = 4;
29-
private static final float NUM_POINTS = 3f;
30-
private static final float FULL_ROTATION = 1080.0f;
31-
private static final float MAX_PROGRESS_ARC = 0.15f;
33+
private static final int NUM_POINTS = 3;
34+
private static final int MAX_ALPHA = 255;
35+
private static final int DEGREE_360 = 360;
3236

3337
private static final int DEFAULT_COLOR = Color.WHITE;
3438

@@ -44,7 +48,7 @@ public void onAnimationRepeat(Animator animator) {
4448
storeOriginals();
4549

4650
mStartTrim = mEndTrim;;
47-
mRotationCount = (mRotationCount + 1) % (NUM_POINTS);
51+
mRotationCount = (mRotationCount + 1) % NUM_POINTS;
4852
}
4953

5054
@Override
@@ -54,18 +58,16 @@ public void onAnimationStart(Animator animation) {
5458
}
5559
};
5660

57-
private float mStrokeInset = 2.5f;
58-
59-
private float mScale = 0.0f;
60-
private float mEndTrim = 0.0f;
61-
private float mRotation = 0.0f;
62-
private float mStartTrim = 0.0f;
63-
6461
private int mCurrentColor;
6562

63+
private float mStrokeInset;
64+
65+
private float mScale;
66+
private float mEndTrim;
67+
private float mRotation;
68+
private float mStartTrim;
6669
private float mRotationCount;
6770
private float mGroupRotation;
68-
6971
private float mOriginEndTrim;
7072
private float mOriginRotation;
7173
private float mOriginStartTrim;
@@ -98,26 +100,26 @@ public void draw(Canvas canvas, Rect bounds) {
98100
arcBounds.set(bounds);
99101
arcBounds.inset(mStrokeInset, mStrokeInset);
100102

101-
float startAngle = (mStartTrim + mRotation) * 360;
102-
float endAngle = (mEndTrim + mRotation) * 360;
103-
float sweepAngle = endAngle - startAngle;
104-
105-
if (sweepAngle == 0) {
106-
return;
103+
if (mStartTrim == mEndTrim) {
104+
mStartTrim = mEndTrim + getMinProgressArc();
107105
}
108106

107+
float startAngle = (mStartTrim + mRotation) * DEGREE_360;
108+
float endAngle = (mEndTrim + mRotation) * DEGREE_360;
109+
float sweepAngle = endAngle - startAngle;
110+
109111
if (mIsScaling) {
110-
mPaint.setAlpha((int) (255 * mScale));
112+
mPaint.setAlpha((int) (MAX_ALPHA * mScale));
111113
mPaint.setStrokeWidth(getStrokeWidth() * mScale);
112114
arcBounds.inset(arcBounds.width() * (1 - mScale) / 2, arcBounds.height() * (1 - mScale) / 2);
113115
for (int i = 0; i < GEAR_COUNT; i++) {
114-
canvas.drawArc(arcBounds, startAngle + 360 / GEAR_COUNT * i, sweepAngle, false, mPaint);
116+
canvas.drawArc(arcBounds, startAngle + DEGREE_360 / GEAR_COUNT * i, sweepAngle, false, mPaint);
115117
}
116118
} else {
117-
mPaint.setAlpha(255);
119+
mPaint.setAlpha(MAX_ALPHA);
118120

119121
for (int i = 0; i < GEAR_COUNT; i++) {
120-
canvas.drawArc(arcBounds, startAngle + 360 / GEAR_COUNT * i, sweepAngle, false, mPaint);
122+
canvas.drawArc(arcBounds, startAngle + DEGREE_360 / GEAR_COUNT * i, sweepAngle, false, mPaint);
121123
}
122124
}
123125

@@ -135,8 +137,7 @@ public void computeRender(float renderProgress) {
135137
// single ring animation
136138
if (renderProgress <= START_SCALE_DURATION_OFFSET) {
137139
float startScaleProgress = (renderProgress) / START_SCALE_DURATION_OFFSET;
138-
mScale = ACCELERATE_INTERPOLATOR.getInterpolation(startScaleProgress);
139-
mStartTrim = mEndTrim + minProgressArc;
140+
mScale = DECELERATE_INTERPOLATOR.getInterpolation(startScaleProgress);
140141

141142
mIsScaling = true;
142143
invalidateSelf();
@@ -147,7 +148,7 @@ public void computeRender(float renderProgress) {
147148
// single ring animation
148149
if (renderProgress <= START_TRIM_DURATION_OFFSET && renderProgress > START_SCALE_DURATION_OFFSET) {
149150
float startTrimProgress = (renderProgress - START_SCALE_DURATION_OFFSET) / (START_TRIM_DURATION_OFFSET - START_SCALE_DURATION_OFFSET);
150-
mStartTrim = originStartTrim + ((MAX_PROGRESS_ARC - minProgressArc) * ACCELERATE_INTERPOLATOR.getInterpolation(startTrimProgress));
151+
mStartTrim = originStartTrim + ((MAX_PROGRESS_ARC - minProgressArc) * LINEAR_INTERPOLATOR.getInterpolation(startTrimProgress));
151152

152153
mIsScaling = false;
153154
}
@@ -156,7 +157,7 @@ public void computeRender(float renderProgress) {
156157
// animation completes
157158
if (renderProgress > END_TRIM_START_DELAY_OFFSET && renderProgress < END_SCALE_START_DELAY_OFFSET) {
158159
float endTrimProgress = (renderProgress - END_TRIM_START_DELAY_OFFSET) / (END_SCALE_START_DELAY_OFFSET - END_TRIM_START_DELAY_OFFSET);
159-
mEndTrim = originEndTrim + ((MAX_PROGRESS_ARC - minProgressArc) * DECELERATE_INTERPOLATOR.getInterpolation(endTrimProgress));
160+
mEndTrim = originEndTrim + ((MAX_PROGRESS_ARC - minProgressArc) * LINEAR_INTERPOLATOR.getInterpolation(endTrimProgress));
160161

161162
mIsScaling = false;
162163
}
@@ -165,18 +166,16 @@ public void computeRender(float renderProgress) {
165166
// animation completes
166167
if (renderProgress > END_SCALE_START_DELAY_OFFSET) {
167168
float endScaleProgress = (renderProgress - END_SCALE_START_DELAY_OFFSET) / (1.0f - END_SCALE_START_DELAY_OFFSET);
168-
mScale = 1.0f - DECELERATE_INTERPOLATOR.getInterpolation(endScaleProgress);
169-
mStartTrim = mEndTrim + minProgressArc;
169+
mScale = 1.0f - ACCELERATE_INTERPOLATOR.getInterpolation(endScaleProgress);
170170

171171
mIsScaling = true;
172172
invalidateSelf();
173173
return ;
174174
}
175175

176-
mRotation = originRotation + (0.25f * renderProgress);
177-
178176
float rotateProgress = (renderProgress - START_SCALE_DURATION_OFFSET) / (END_SCALE_START_DELAY_OFFSET - START_SCALE_DURATION_OFFSET);
179177
mGroupRotation = ((FULL_ROTATION / NUM_POINTS) * rotateProgress) + (FULL_ROTATION * (mRotationCount / NUM_POINTS));
178+
mRotation = originRotation + (ROTATION_FACTOR * rotateProgress);
180179

181180
invalidateSelf();
182181
}
@@ -245,7 +244,7 @@ public float getScale() {
245244
return mScale;
246245
}
247246

248-
public void setInsets(int width, int height) {
247+
private void setInsets(int width, int height) {
249248
final float minEdge = (float) Math.min(width, height);
250249
float insets;
251250
if (getCenterRadius() <= 0 || minEdge < 0) {

library/src/main/java/app/dinus/com/loadingdrawable/LevelLoadingRenderer.java

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,21 @@
1616
import android.view.animation.LinearInterpolator;
1717

1818
public class LevelLoadingRenderer extends LoadingRenderer{
19+
private static final Interpolator LINEAR_INTERPOLATOR = new LinearInterpolator();
1920
private static final Interpolator MATERIAL_INTERPOLATOR = new FastOutSlowInInterpolator();
2021
private static final Interpolator ACCELERATE_INTERPOLATOR = new AccelerateInterpolator();
21-
private static final Interpolator LINEAR_INTERPOLATOR = new LinearInterpolator();
2222
private static final Interpolator DECELERATE_INTERPOLATOR = new DecelerateInterpolator();
2323

24-
private static final float START_TRIM_DURATION_OFFSET = 0.5f;
25-
private static final float END_TRIM_START_DELAY_OFFSET = 0.5f;
24+
private static final int NUM_POINTS = 5;
25+
private static final int DEGREE_360 = 360;
2626

27-
private static final float NUM_POINTS = 5f;
2827
private static final float FULL_ROTATION = 1080.0f;
28+
private static final float ROTATION_FACTOR = 0.25f;
2929
private static final float MAX_PROGRESS_ARC = 0.8f;
30+
private static final float LEVEL2_SWEEP_ANGLE_OFFSET = 7.0f / 8.0f;
31+
private static final float LEVEL3_SWEEP_ANGLE_OFFSET = 5.0f / 8.0f;
32+
private static final float START_TRIM_DURATION_OFFSET = 0.5f;
33+
private static final float END_TRIM_START_DELAY_OFFSET = 0.5f;
3034

3135
private static final int DEFAULT_COLOR = Color.WHITE;
3236

@@ -50,21 +54,19 @@ public void onAnimationStart(Animator animation) {
5054
}
5155
};
5256

53-
private float mStrokeInset = 2.5f;
54-
55-
private float mEndTrim = 0.0f;
56-
private float mRotation = 0.0f;
57-
private float mStartTrim = 0.0f;
58-
5957
private boolean mIsRenderingFirstHalf;
6058

61-
private int mBottomColor;
62-
private int mMiddleColor;
63-
private int mTopColor;
59+
private int mLevel1Color;
60+
private int mLevel2Color;
61+
private int mLevel3Color;
6462

63+
private float mStrokeInset;
64+
65+
private float mEndTrim;
66+
private float mRotation;
67+
private float mStartTrim;
6568
private float mRotationCount;
6669
private float mGroupRotation;
67-
6870
private float mOriginEndTrim;
6971
private float mOriginRotation;
7072
private float mOriginStartTrim;
@@ -76,9 +78,9 @@ public LevelLoadingRenderer(Context context) {
7678
}
7779

7880
private void setupPaint() {
79-
mBottomColor = oneThirdAlphaColor(DEFAULT_COLOR);
80-
mMiddleColor = twoThirdAlphaColor(DEFAULT_COLOR);
81-
mTopColor = DEFAULT_COLOR;
81+
mLevel1Color = oneThirdAlphaColor(DEFAULT_COLOR);
82+
mLevel2Color = twoThirdAlphaColor(DEFAULT_COLOR);
83+
mLevel3Color = DEFAULT_COLOR;
8284

8385
mPaint.setAntiAlias(true);
8486
mPaint.setStrokeWidth(getStrokeWidth());
@@ -97,47 +99,47 @@ public void draw(Canvas canvas, Rect bounds) {
9799
arcBounds.set(bounds);
98100
arcBounds.inset(mStrokeInset, mStrokeInset);
99101

100-
float startAngle = (mStartTrim + mRotation) * 360;
101-
float endAngle = (mEndTrim + mRotation) * 360;
102-
float sweepAngle = endAngle - startAngle;
103-
104-
if (sweepAngle == 0) {
105-
return;
102+
if (mStartTrim == mEndTrim) {
103+
mStartTrim = mEndTrim + getMinProgressArc();
106104
}
107105

106+
float startAngle = (mStartTrim + mRotation) * DEGREE_360;
107+
float endAngle = (mEndTrim + mRotation) * DEGREE_360;
108+
float sweepAngle = endAngle - startAngle;
109+
108110
if (mIsRenderingFirstHalf) {
109111
float renderPercentage = Math.abs(mStartTrim - mEndTrim) / MAX_PROGRESS_ARC;
110112

111113
float topIncrement = DECELERATE_INTERPOLATOR.getInterpolation(renderPercentage) - LINEAR_INTERPOLATOR.getInterpolation(renderPercentage);
112114
float bottomIncrement = ACCELERATE_INTERPOLATOR.getInterpolation(renderPercentage) - LINEAR_INTERPOLATOR.getInterpolation(renderPercentage);
113115

114-
mPaint.setColor(mBottomColor);
116+
mPaint.setColor(mLevel1Color);
115117
canvas.drawArc(arcBounds, endAngle, -sweepAngle * (1 + topIncrement), false, mPaint);
116-
mPaint.setColor(mMiddleColor);
117-
canvas.drawArc(arcBounds, endAngle, -sweepAngle * 7.0f / 8.0f, false, mPaint);
118-
mPaint.setColor(mTopColor);
119-
canvas.drawArc(arcBounds, endAngle, -sweepAngle * 5.0f / 8.0f * (1 + bottomIncrement), false, mPaint);
118+
mPaint.setColor(mLevel2Color);
119+
canvas.drawArc(arcBounds, endAngle, -sweepAngle * LEVEL2_SWEEP_ANGLE_OFFSET, false, mPaint);
120+
mPaint.setColor(mLevel3Color);
121+
canvas.drawArc(arcBounds, endAngle, -sweepAngle * LEVEL3_SWEEP_ANGLE_OFFSET * (1 + bottomIncrement), false, mPaint);
120122
} else {
121123
float renderPercentage = Math.abs(mStartTrim - mEndTrim) / MAX_PROGRESS_ARC;
122-
float totalSweepAngle = MAX_PROGRESS_ARC * 360;
124+
float totalSweepAngle = MAX_PROGRESS_ARC * DEGREE_360;
123125

124-
if (renderPercentage > 7.0f / 8.0f) {
125-
mPaint.setColor(mBottomColor);
126+
if (renderPercentage > LEVEL2_SWEEP_ANGLE_OFFSET) {
127+
mPaint.setColor(mLevel1Color);
126128
canvas.drawArc(arcBounds, endAngle, -sweepAngle, false, mPaint);
127129

128-
mPaint.setColor(mMiddleColor);
129-
canvas.drawArc(arcBounds, endAngle, totalSweepAngle * 7.0f / 8.0f, false, mPaint);
130+
mPaint.setColor(mLevel2Color);
131+
canvas.drawArc(arcBounds, endAngle, totalSweepAngle * LEVEL2_SWEEP_ANGLE_OFFSET, false, mPaint);
130132

131-
mPaint.setColor(mTopColor);
132-
canvas.drawArc(arcBounds, endAngle, totalSweepAngle * 5.0f / 8.0f, false, mPaint);
133-
} else if (renderPercentage > 5.0f / 8.0f) {
134-
mPaint.setColor(mMiddleColor);
133+
mPaint.setColor(mLevel3Color);
134+
canvas.drawArc(arcBounds, endAngle, totalSweepAngle * LEVEL3_SWEEP_ANGLE_OFFSET, false, mPaint);
135+
} else if (renderPercentage > LEVEL3_SWEEP_ANGLE_OFFSET) {
136+
mPaint.setColor(mLevel2Color);
135137
canvas.drawArc(arcBounds, endAngle, -sweepAngle, false, mPaint);
136138

137-
mPaint.setColor(mTopColor);
138-
canvas.drawArc(arcBounds, endAngle, totalSweepAngle * 5.0f / 8.0f, false, mPaint);
139+
mPaint.setColor(mLevel3Color);
140+
canvas.drawArc(arcBounds, endAngle, totalSweepAngle * LEVEL3_SWEEP_ANGLE_OFFSET, false, mPaint);
139141
} else {
140-
mPaint.setColor(mTopColor);
142+
mPaint.setColor(mLevel3Color);
141143
canvas.drawArc(arcBounds, endAngle, -sweepAngle, false, mPaint);
142144
}
143145
}
@@ -170,9 +172,8 @@ public void computeRender(float renderProgress) {
170172
mIsRenderingFirstHalf = false;
171173
}
172174

173-
mRotation = originRotation + (0.25f * renderProgress);
174-
175175
mGroupRotation = ((FULL_ROTATION / NUM_POINTS) * renderProgress) + (FULL_ROTATION * (mRotationCount / NUM_POINTS));
176+
mRotation = originRotation + (ROTATION_FACTOR * renderProgress);
176177

177178
invalidateSelf();
178179
}
@@ -195,9 +196,9 @@ public void reset() {
195196
}
196197

197198
public void setColor(int color) {
198-
mBottomColor = oneThirdAlphaColor(color);
199-
mMiddleColor = twoThirdAlphaColor(color);
200-
mTopColor = color;
199+
mLevel1Color = oneThirdAlphaColor(color);
200+
mLevel2Color = twoThirdAlphaColor(color);
201+
mLevel3Color = color;
201202
}
202203

203204
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public LoadingRenderer(Context context) {
4141
public abstract void reset();
4242

4343
public void start() {
44-
mRenderAnimator.setDuration(ANIMATION_DURATION );
44+
mRenderAnimator.setDuration(ANIMATION_DURATION * 10);
4545
mRenderAnimator.start();
4646
}
4747

0 commit comments

Comments
 (0)