Skip to content

Commit 6c66293

Browse files
Merge pull request #11 from agrawalsuneet/dev
Merge Dev to master for 0.5
2 parents 86078ab + 6b2518d commit 6c66293

File tree

11 files changed

+664
-29
lines changed

11 files changed

+664
-29
lines changed

README.md

Lines changed: 41 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,62 @@
55
66
latest version : [ ![Download](https://api.bintray.com/packages/agrawalsuneet/androidlibs/squareloaderspack/images/download.svg) ](https://bintray.com/agrawalsuneet/androidlibs/squareloaderspack/_latestVersion)
77

8-
[![Android Arsenal]( https://img.shields.io/badge/Android%20Arsenal-SquareLoadersPack-green.svg?style=flat )]( https://android-arsenal.com/details/1/7246 ) [![CircleCI](https://circleci.com/gh/agrawalsuneet/SquareLoadersPack-Android.svg?style=svg)](https://circleci.com/gh/agrawalsuneet/SquareLoadersPack-Android)
8+
[![Android Arsenal]( https://img.shields.io/badge/Android%20Arsenal-SquareLoadersPack-green.svg?style=flat )]( https://android-arsenal.com/details/1/7246 ) [![CircleCI](https://circleci.com/gh/agrawalsuneet/SquareLoadersPack-Android.svg?style=svg)](https://circleci.com/gh/agrawalsuneet/SquareLoadersPack-Android) [![CircleCI](https://circleci.com/gh/agrawalsuneet/SquareLoadersPack-Android.svg?style=svg)](https://circleci.com/gh/agrawalsuneet/SquareLoadersPack-Android)
99

10+
![usainboltloader](https://user-images.githubusercontent.com/12999622/54089745-52814300-4392-11e9-89d0-a5403b8ddb96.gif) ![squaregridloader](https://user-images.githubusercontent.com/12999622/44960467-15765880-aef8-11e8-80fb-5a834ca5c628.gif)
1011

11-
### SquareGridLoader
12-
![squaregridloader](https://user-images.githubusercontent.com/12999622/44960467-15765880-aef8-11e8-80fb-5a834ca5c628.gif)
1312

13+
![zipzaploader](https://user-images.githubusercontent.com/12999622/36222631-d8228584-11b9-11e8-8478-d1442891419c.gif) ![waveloader](https://user-images.githubusercontent.com/12999622/34330606-af613dc8-e916-11e7-9965-a686071002b9.gif)
1414

15-
### ZipZapLoader
16-
![zipzaploader](https://user-images.githubusercontent.com/12999622/36222631-d8228584-11b9-11e8-8478-d1442891419c.gif)
1715

16+
![musicplayerloader](https://user-images.githubusercontent.com/12999622/35103527-00136c14-fc5e-11e7-84a0-9c2bc47236be.gif) ![RotatingSquareLoader](https://user-images.githubusercontent.com/12999622/35877618-c2f139c8-0b6d-11e8-8c66-b830c27ac430.gif)
1817

19-
### WaveLoader
20-
![waveloader](https://user-images.githubusercontent.com/12999622/34330606-af613dc8-e916-11e7-9965-a686071002b9.gif)
18+
Check all other loaders [here](https://agrawalsuneet.github.io/agrawalsuneet/opensourcecontribution/)
2119

2220

23-
### MusicPlayerLoader
24-
![musicplayerloader](https://user-images.githubusercontent.com/12999622/35103527-00136c14-fc5e-11e7-84a0-9c2bc47236be.gif)
21+
## How To use
22+
include below dependency in build.gradle of application and compile it
23+
```
24+
implementation 'com.agrawalsuneet.androidlibs:squareloaderspack:0.5'
25+
```
2526

27+
### UsainBoltLoader
28+
##### Through XML
29+
```
30+
<com.agrawalsuneet.squareloaderspack.loaders.UsainBoltLoader
31+
android:layout_width="wrap_content"
32+
android:layout_height="wrap_content"
33+
app:usainbolt_animDuration="400"
34+
app:usainbolt_interpolator="@android:interpolator/linear"
35+
app:usainbolt_rectangleColor="@color/blue"
36+
app:usainbolt_rectangleWidth="18dp"/>
37+
```
38+
##### Through Code
39+
* Kotlin
40+
```
41+
val usainBoltLoader = UsainBoltLoader(this,
42+
60, ContextCompat.getColor(this, R.color.purple))
43+
.apply {
44+
animDuration = 1000
45+
interpolator = LinearInterpolator()
46+
}
2647
27-
### RotatingSquareLoader
28-
![RotatingSquareLoader](https://user-images.githubusercontent.com/12999622/35877618-c2f139c8-0b6d-11e8-8c66-b830c27ac430.gif)
48+
container.addView(usainBoltLoader)
49+
```
2950

30-
Check all other loaders [here](https://agrawalsuneet.github.io/agrawalsuneet/opensourcecontribution/)
51+
* Java
52+
```
53+
UsainBoltLoader usainBoltLoader = new UsainBoltLoader(this,
54+
60, ContextCompat.getColor(this, R.color.purple));
3155
56+
usainBoltLoader.setAnimDuration(1000);
57+
usainBoltLoader.setInterpolator(new LinearInterpolator());
3258
33-
## How To use
34-
include below dependency in build.gradle of application and compile it
35-
```
36-
implementation 'com.agrawalsuneet.androidlibs:squareloaderspack:0.4'
59+
60+
container.addView(usainBoltLoader);
3761
```
3862

63+
3964
### SquareGridLoader
4065
##### Through XML
4166
```

app/src/main/java/com/agrawalsuneet/squareloaders/MainActivity.kt

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ class MainActivity : AppCompatActivity() {
2121
override fun onCreate(savedInstanceState: Bundle?) {
2222
super.onCreate(savedInstanceState)
2323

24-
setContentView(R.layout.activity_main_squaregrid)
24+
setContentView(R.layout.activity_usainbolt)
2525

26-
supportActionBar?.title = "SquareGridLoader"
26+
supportActionBar?.title = "UsainBoltLoader"
2727

2828
container = findViewById(R.id.container)
2929

@@ -37,9 +37,21 @@ class MainActivity : AppCompatActivity() {
3737
//initControls();
3838

3939
//initSquareGridLoader()
40+
//initUsainBoltLoader()
4041
}
4142

42-
private fun initSquareGridLoader(){
43+
private fun initUsainBoltLoader() {
44+
val usainBoltLoader = UsainBoltLoader(this,
45+
60, ContextCompat.getColor(this, R.color.purple))
46+
.apply {
47+
animDuration = 1000
48+
interpolator = LinearInterpolator()
49+
}
50+
51+
container.addView(usainBoltLoader)
52+
}
53+
54+
private fun initSquareGridLoader() {
4355
val squareGridLoader = SquareGridLoader(
4456
this,
4557
3,

app/src/main/java/com/agrawalsuneet/squareloaders/MainActivityJava.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.agrawalsuneet.squareloaderspack.loaders.MusicPlayerLoader;
1111
import com.agrawalsuneet.squareloaderspack.loaders.RotatingSquareLoader;
1212
import com.agrawalsuneet.squareloaderspack.loaders.SquareGridLoader;
13+
import com.agrawalsuneet.squareloaderspack.loaders.UsainBoltLoader;
1314
import com.agrawalsuneet.squareloaderspack.loaders.WaveLoader;
1415
import com.agrawalsuneet.squareloaderspack.loaders.ZipZapLoader;
1516

@@ -80,5 +81,14 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
8081

8182

8283
container.addView(squareGridLoader);
84+
85+
UsainBoltLoader usainBoltLoader = new UsainBoltLoader(this,
86+
60, ContextCompat.getColor(this, R.color.purple));
87+
88+
usainBoltLoader.setAnimDuration(1000);
89+
usainBoltLoader.setInterpolator(new LinearInterpolator());
90+
91+
92+
container.addView(usainBoltLoader);
8393
}
8494
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
android:id="@+id/container"
5+
android:layout_width="match_parent"
6+
android:layout_height="match_parent"
7+
android:gravity="center"
8+
android:orientation="vertical">
9+
10+
<LinearLayout
11+
android:layout_width="match_parent"
12+
android:layout_height="wrap_content"
13+
android:layout_margin="16dp"
14+
android:gravity="center"
15+
android:orientation="horizontal">
16+
17+
18+
<com.agrawalsuneet.squareloaderspack.loaders.UsainBoltLoader
19+
android:layout_width="wrap_content"
20+
android:layout_height="wrap_content"
21+
app:usainbolt_animDuration="500"
22+
app:usainbolt_interpolator="@android:interpolator/linear"
23+
app:usainbolt_rectangleColor="@color/red"
24+
app:usainbolt_rectangleWidth="6dp"
25+
android:layout_margin="8dp"/>
26+
27+
<com.agrawalsuneet.squareloaderspack.loaders.UsainBoltLoader
28+
android:layout_width="wrap_content"
29+
android:layout_height="wrap_content"
30+
app:usainbolt_animDuration="500"
31+
app:usainbolt_interpolator="@android:interpolator/linear"
32+
app:usainbolt_rectangleColor="@color/amber"
33+
app:usainbolt_rectangleWidth="6dp"
34+
android:layout_margin="8dp"/>
35+
36+
<com.agrawalsuneet.squareloaderspack.loaders.UsainBoltLoader
37+
android:layout_width="wrap_content"
38+
android:layout_height="wrap_content"
39+
app:usainbolt_animDuration="500"
40+
app:usainbolt_interpolator="@android:interpolator/linear"
41+
app:usainbolt_rectangleColor="@color/green"
42+
app:usainbolt_rectangleWidth="6dp"
43+
android:layout_margin="8dp"/>
44+
45+
46+
</LinearLayout>
47+
48+
<com.agrawalsuneet.squareloaderspack.loaders.UsainBoltLoader
49+
android:layout_width="wrap_content"
50+
android:layout_height="wrap_content"
51+
app:usainbolt_animDuration="400"
52+
app:usainbolt_interpolator="@android:interpolator/linear"
53+
app:usainbolt_rectangleColor="@color/blue"
54+
app:usainbolt_rectangleWidth="18dp"
55+
android:layout_margin="8dp"/>
56+
57+
<com.agrawalsuneet.squareloaderspack.loaders.UsainBoltLoader
58+
android:layout_width="wrap_content"
59+
android:layout_height="wrap_content"
60+
app:usainbolt_animDuration="500"
61+
app:usainbolt_interpolator="@android:interpolator/linear"
62+
app:usainbolt_rectangleColor="@color/grey"
63+
app:usainbolt_rectangleWidth="16dp"
64+
android:layout_margin="8dp"/>
65+
66+
67+
</LinearLayout>

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ buildscript {
77
jcenter()
88
}
99
dependencies {
10-
classpath 'com.android.tools.build:gradle:3.3.0'
10+
classpath 'com.android.tools.build:gradle:3.3.1'
1111
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
1212

1313
// NOTE: Do not place your application dependencies here; they belong

squareloaderspack/build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ repositories {
88
ext {
99
PUBLISH_GROUP_ID = 'com.agrawalsuneet.androidlibs'
1010
PUBLISH_ARTIFACT_ID = 'squareloaderspack'
11-
PUBLISH_VERSION = '0.4'
11+
PUBLISH_VERSION = '0.5'
1212
}
1313

1414
android {
15-
compileSdkVersion 26
15+
compileSdkVersion 28
1616

1717
defaultConfig {
1818
minSdkVersion 16
19-
targetSdkVersion 26
20-
versionCode 4
21-
versionName "0.4"
19+
targetSdkVersion 28
20+
versionCode 5
21+
versionName "0.5"
2222
}
2323

2424
buildTypes {
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
package com.agrawalsuneet.squareloaderspack.basicviews
2+
3+
import android.content.Context
4+
import android.graphics.Canvas
5+
import android.graphics.Paint
6+
import android.util.AttributeSet
7+
import android.view.View
8+
import com.agrawalsuneet.squareloaderspack.R
9+
10+
class CircleView : View {
11+
12+
var circleRadius: Int = 30
13+
var strokeWidth: Int = 0
14+
15+
var circleColor: Int = 0
16+
var drawOnlyStroke: Boolean = false
17+
18+
private var xyCordinates: Float = 0.0f
19+
20+
private val paint: Paint = Paint()
21+
22+
constructor(context: Context, circleRadius: Int, circleColor: Int) : super(context) {
23+
this.circleRadius = circleRadius
24+
this.circleColor = circleColor
25+
26+
initValues()
27+
}
28+
29+
constructor(context: Context, circleRadius: Int, circleColor: Int, drawOnlyStroke: Boolean, strokeWidth: Int) : super(context) {
30+
this.circleRadius = circleRadius
31+
this.circleColor = circleColor
32+
33+
this.drawOnlyStroke = drawOnlyStroke
34+
this.strokeWidth = strokeWidth
35+
36+
initValues()
37+
}
38+
39+
constructor(context: Context) : super(context) {
40+
initValues()
41+
}
42+
43+
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
44+
initAttributes(attrs)
45+
initValues()
46+
}
47+
48+
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
49+
initAttributes(attrs)
50+
initValues()
51+
}
52+
53+
54+
fun initAttributes(attrs: AttributeSet) {
55+
56+
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.CircleView, 0, 0)
57+
58+
this.circleRadius = typedArray.getDimensionPixelSize(R.styleable.CircleView_circleRadius, 30)
59+
this.circleColor = typedArray.getColor(R.styleable.CircleView_circleColor, 0)
60+
61+
this.drawOnlyStroke = typedArray.getBoolean(R.styleable.CircleView_circleDrawOnlystroke, false)
62+
63+
if (drawOnlyStroke) {
64+
this.strokeWidth = typedArray.getDimensionPixelSize(R.styleable.CircleView_circleStrokeWidth, 0)
65+
}
66+
67+
typedArray.recycle()
68+
}
69+
70+
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
71+
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
72+
73+
val widthHeight = (2 * (circleRadius)) + strokeWidth
74+
75+
setMeasuredDimension(widthHeight, widthHeight)
76+
}
77+
78+
private fun initValues() {
79+
paint.isAntiAlias = true
80+
81+
if (drawOnlyStroke) {
82+
paint.style = Paint.Style.STROKE
83+
paint.strokeWidth = strokeWidth.toFloat()
84+
} else {
85+
paint.style = Paint.Style.FILL
86+
}
87+
paint.color = circleColor
88+
89+
//adding half of strokeWidth because
90+
//the stroke will be half inside the drawing circle and half outside
91+
xyCordinates = (circleRadius + (strokeWidth / 2)).toFloat()
92+
}
93+
94+
95+
override fun onDraw(canvas: Canvas) {
96+
super.onDraw(canvas)
97+
canvas.drawCircle(xyCordinates, xyCordinates, circleRadius.toFloat(), paint)
98+
}
99+
100+
101+
}

0 commit comments

Comments
 (0)