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

Skip to content

Commit 6095372

Browse files
author
dinuscxj
committed
add EletricFanLoadingRenderer
1 parent cc0a95b commit 6095372

File tree

16 files changed

+596
-23
lines changed

16 files changed

+596
-23
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ android {
66

77
defaultConfig {
88
applicationId "app.dinus.com.example"
9-
minSdkVersion 11
9+
minSdkVersion 12
1010
targetSdkVersion 23
1111
versionCode 1
1212
versionName "1.0"

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222

2323
<activity android:name=".CircleRotateActivity"
2424
android:label="@string/label_circle_rotate"/>
25+
26+
<activity android:name=".SceneryActivity"
27+
android:label="@string/label_scenery"/>
2528
</application>
2629

2730
</manifest>

app/src/main/java/app/dinus/com/example/CircleJumpActivity.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package app.dinus.com.example;
22

3+
import android.content.Context;
4+
import android.content.Intent;
35
import android.os.Bundle;
46
import android.support.v7.app.AppCompatActivity;
57
import android.widget.ImageView;
@@ -21,6 +23,11 @@ public class CircleJumpActivity extends AppCompatActivity {
2123
private ImageView mIvDance;
2224
private ImageView mIvCollision;
2325

26+
public static void startActivity(Context context) {
27+
Intent intent = new Intent(context, CircleJumpActivity.class);
28+
context.startActivity(intent);
29+
}
30+
2431
@Override
2532
protected void onCreate(Bundle savedInstanceState) {
2633
super.onCreate(savedInstanceState);

app/src/main/java/app/dinus/com/example/CircleRotateActivity.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package app.dinus.com.example;
22

3+
import android.content.Context;
4+
import android.content.Intent;
35
import android.os.Bundle;
46
import android.support.v7.app.AppCompatActivity;
57
import android.widget.ImageView;
@@ -21,6 +23,11 @@ public class CircleRotateActivity extends AppCompatActivity {
2123
private ImageView mIvLevel;
2224
private ImageView mIvMaterial;
2325

26+
public static void startActivity(Context context) {
27+
Intent intent = new Intent(context, CircleRotateActivity.class);
28+
context.startActivity(intent);
29+
}
30+
2431
@Override
2532
protected void onCreate(Bundle savedInstanceState) {
2633
super.onCreate(savedInstanceState);

app/src/main/java/app/dinus/com/example/MainActivity.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,13 @@
11
package app.dinus.com.example;
22

3-
import android.content.Intent;
43
import android.os.Bundle;
54
import android.support.v7.app.AppCompatActivity;
65
import android.view.View;
76
import android.widget.Button;
8-
import android.widget.ImageView;
9-
10-
import app.dinus.com.loadingdrawable.render.circle.jump.CollisionLoadingRenderer;
11-
import app.dinus.com.loadingdrawable.render.circle.rotate.GearLoadingRenderer;
12-
import app.dinus.com.loadingdrawable.render.circle.rotate.LevelLoadingRenderer;
13-
import app.dinus.com.loadingdrawable.LoadingDrawable;
14-
import app.dinus.com.loadingdrawable.render.circle.rotate.MaterialLoadingRenderer;
15-
import app.dinus.com.loadingdrawable.render.circle.jump.SwapLoadingRenderer;
16-
import app.dinus.com.loadingdrawable.render.circle.rotate.WhorlLoadingRenderer;
177

188

199
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
10+
private Button mBtnScenery;
2011
private Button mBtnCircleJump;
2112
private Button mBtnCircleRotate;
2213

@@ -25,23 +16,26 @@ protected void onCreate(Bundle savedInstanceState) {
2516
super.onCreate(savedInstanceState);
2617
setContentView(R.layout.activity_main);
2718

19+
mBtnScenery = (Button) findViewById(R.id.scenery);
2820
mBtnCircleJump = (Button) findViewById(R.id.circle_jump);
2921
mBtnCircleRotate = (Button) findViewById(R.id.circle_rotate);
3022

23+
mBtnScenery.setOnClickListener(this);
3124
mBtnCircleJump.setOnClickListener(this);
3225
mBtnCircleRotate.setOnClickListener(this);
3326
}
3427

3528
@Override
3629
public void onClick(View v) {
3730
switch (v.getId()){
31+
case R.id.scenery:
32+
SceneryActivity.startActivity(this);
33+
break;
3834
case R.id.circle_jump:
39-
Intent footerIntent = new Intent(MainActivity.this, CircleJumpActivity.class);
40-
startActivity(footerIntent);
35+
CircleJumpActivity.startActivity(this);
4136
break;
4237
case R.id.circle_rotate:
43-
Intent headerIntent = new Intent(MainActivity.this, CircleRotateActivity.class);
44-
startActivity(headerIntent);
38+
CircleRotateActivity.startActivity(this);
4539
break;
4640
default:
4741
break;
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package app.dinus.com.example;
2+
3+
import android.content.Context;
4+
import android.content.Intent;
5+
import android.os.Bundle;
6+
import android.support.v7.app.AppCompatActivity;
7+
import android.widget.ImageView;
8+
9+
import app.dinus.com.loadingdrawable.LoadingDrawable;
10+
import app.dinus.com.loadingdrawable.render.circle.rotate.GearLoadingRenderer;
11+
import app.dinus.com.loadingdrawable.render.circle.rotate.LevelLoadingRenderer;
12+
import app.dinus.com.loadingdrawable.render.circle.rotate.MaterialLoadingRenderer;
13+
import app.dinus.com.loadingdrawable.render.circle.rotate.WhorlLoadingRenderer;
14+
import app.dinus.com.loadingdrawable.render.scenery.ElectricFanLoadingRenderer;
15+
16+
public class SceneryActivity extends AppCompatActivity {
17+
private LoadingDrawable mElectricFanDrawable;
18+
19+
private ImageView mIvElectricFan;
20+
21+
public static void startActivity(Context context) {
22+
Intent intent = new Intent(context, SceneryActivity.class);
23+
context.startActivity(intent);
24+
}
25+
26+
@Override
27+
protected void onCreate(Bundle savedInstanceState) {
28+
super.onCreate(savedInstanceState);
29+
setContentView(R.layout.activity_scenery);
30+
31+
mIvElectricFan = (ImageView) findViewById(R.id.electric_fan_view);
32+
33+
mElectricFanDrawable = new LoadingDrawable(new ElectricFanLoadingRenderer(this));
34+
35+
mIvElectricFan.setImageDrawable(mElectricFanDrawable);
36+
}
37+
38+
@Override
39+
protected void onStart() {
40+
super.onStart();
41+
mElectricFanDrawable.start();
42+
}
43+
44+
@Override
45+
protected void onStop() {
46+
mElectricFanDrawable.stop();
47+
super.onStop();
48+
}
49+
}

app/src/main/res/layout/activity_main.xml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,23 @@
88
android:layout_width="wrap_content"
99
android:layout_height="wrap_content"
1010
android:textAllCaps="false"
11+
android:text="SceneryActivity"
12+
android:id="@+id/scenery" />
13+
14+
<Button
15+
android:layout_width="wrap_content"
16+
android:layout_height="wrap_content"
17+
android:textAllCaps="false"
18+
android:layout_marginTop="50dp"
1119
android:text="CircleRotateActivity"
12-
android:id="@+id/circle_rotate" />
20+
android:id="@+id/circle_rotate" />
1321

1422
<Button
1523
android:layout_width="wrap_content"
1624
android:layout_height="wrap_content"
1725
android:layout_marginTop="50dp"
1826
android:textAllCaps="false"
1927
android:text="CircleJumpActivity"
20-
android:id="@+id/circle_jump"/>
28+
android:id="@+id/circle_jump" />
2129

2230
</LinearLayout>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<LinearLayout
2+
android:orientation="vertical"
3+
android:layout_height="match_parent"
4+
android:layout_width="match_parent"
5+
xmlns:android="http://schemas.android.com/apk/res/android">
6+
7+
8+
<ImageView
9+
android:id="@+id/electric_fan_view"
10+
android:layout_weight="1"
11+
android:layout_width="match_parent"
12+
android:background="#fffcd03c"
13+
android:layout_height="0dp" />
14+
15+
<ImageView
16+
android:id="@+id/swap_view"
17+
android:layout_weight="1"
18+
android:layout_height="0dp"
19+
android:layout_width="match_parent"
20+
android:background="#ff071c28" />
21+
22+
</LinearLayout>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<string name="app_name">LoadingDrawable</string>
33
<string name="label_circle_rotate">CircleRotateActivity</string>
44
<string name="label_circle_jump">CircleJumpActivity</string>
5+
<string name="label_scenery">SceneryActivity</string>
56

67
<string name="hello_world">Hello world!</string>
78
<string name="action_settings">Settings</string>

library/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ android {
55
buildToolsVersion "23.0.3"
66

77
defaultConfig {
8-
minSdkVersion 11
8+
minSdkVersion 12
99
targetSdkVersion 23
1010
versionCode 1
1111
versionName "1.0"

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 * 10;
73+
mDuration = ANIMATION_DURATION;
7474
}
7575

7676
private void setupAnimators() {

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ public class DanceLoadingRenderer extends LoadingRenderer {
2121
private static final Interpolator ACCELERATE_INTERPOLATOR = new AccelerateInterpolator();
2222
private static final Interpolator DECELERATE_INTERPOLATOR = new DecelerateInterpolator();
2323

24+
private static final long ANIMATION_DURATION = 1888;
25+
2426
private static final float DEFAULT_STROKE_WIDTH = 1.5f;
2527
private static final float DEFAULT_DANCE_BALL_RADIUS = 2.0f;
2628

@@ -78,20 +80,25 @@ public class DanceLoadingRenderer extends LoadingRenderer {
7880

7981
public DanceLoadingRenderer(Context context) {
8082
super(context);
83+
init(context);
84+
setupPaint();
85+
}
86+
87+
private void init(Context context) {
8188
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
89+
8290
mStrokeWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DEFAULT_STROKE_WIDTH, displayMetrics);
8391
mDanceBallRadius = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DEFAULT_DANCE_BALL_RADIUS, displayMetrics);
8492

85-
setupPaint();
93+
setColor(DEFAULT_COLOR);
94+
setInsets((int) getWidth(), (int) getHeight());
95+
setDuration(ANIMATION_DURATION);
8696
}
8797

8898
private void setupPaint() {
8999
mPaint.setAntiAlias(true);
90100
mPaint.setStrokeWidth(getStrokeWidth());
91101
mPaint.setStyle(Paint.Style.STROKE);
92-
93-
setColor(DEFAULT_COLOR);
94-
setInsets((int) getWidth(), (int) getHeight());
95102
}
96103

97104
@Override

0 commit comments

Comments
 (0)