Skip to content

Commit

Permalink
Added : Max - Angle Values
Browse files Browse the repository at this point in the history
  • Loading branch information
hi-manshu committed Jan 10, 2019
1 parent 6023e69 commit b56056e
Show file tree
Hide file tree
Showing 8 changed files with 104 additions and 20 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
*.iml
.gradle
/local.properties
/.idea/caches/build_file_checksums.ser
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
.DS_Store
/build
/captures
.externalNativeBuild
/.idea
10 changes: 10 additions & 0 deletions app/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
*.iml
.gradle
/local.properties
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
.DS_Store
/build
/captures
.externalNativeBuild
/.idea
4 changes: 4 additions & 0 deletions app/src/main/java/com/mindorks/app/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@ package com.mindorks.app

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.util.Log
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
progress.useRoundedCorners(false)
progress.setMaxProgressValues(200,200,200)
progress.setProgressValues(100,100,100)

}
}
10 changes: 5 additions & 5 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_height="match_parent"
android:background="#000"
android:background="#fff"
tools:context=".MainActivity">


<com.mindorks.RadialProgressBar
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/progress"
app:outerProgress="40"
app:innerProgress="40"
app:centerProgress="40"
app:useRoundedCorner="true"
app:centerProgressStartAngle="270"
app:innerProgressStartAngle="270"
app:isAnimationOn="true"
app:innerMaxProgress="2000"
app:outerMaxProgress="200"
app:centerMaxProgress="500"
app:isAnimationOn="false"
app:outerProgressStartAngle="270"
/>

Expand Down
10 changes: 10 additions & 0 deletions radialprogressbar/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
*.iml
.gradle
/local.properties
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
.DS_Store
/build
/captures
.externalNativeBuild
/.idea
78 changes: 64 additions & 14 deletions radialprogressbar/src/main/java/com/mindorks/RadialProgressBar.kt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class RadialProgressBar : View {

//Data of the Outer View
private var mStartAngleOuterView = 270
private var mOuterProgress = 30
private var mOuterProgress = 0
private var mSweepAngleOuterView = 0
private var mAnimationDurationOuterView = 400
private var mMaxProgressOuterView = 100
Expand All @@ -48,15 +48,15 @@ class RadialProgressBar : View {
private var mSweepAngleCenterView = 0
private var mAnimationDurationCenterView = 400
private var mMaxProgressCenterView = 100
private var mCenterProgress = 30
private var mCenterProgress = 0
private var mProgressColorCenterView = Color.parseColor("#c2ff07")
private var mPaintCenterView = Paint(Paint.ANTI_ALIAS_FLAG)


//Data of the Inner View
private var mStartAngleInnerView = 270
private var mSweepAngleInnerView = 0
private var mInnerProgress = 30
private var mInnerProgress = 0
private var mAnimationDurationInnerView = 400
private var mMaxProgressInnerView = 100
private var mProgressColorInnerView = Color.parseColor("#0dffab")
Expand Down Expand Up @@ -86,8 +86,14 @@ class RadialProgressBar : View {
mStartAngleCenterView =
a.getInteger(R.styleable.RadialProgressBar_centerProgressStartAngle, mStartAngleCenterView)
mStartAngleInnerView = a.getInteger(R.styleable.RadialProgressBar_innerProgressStartAngle, mStartAngleInnerView)
mMaxProgressOuterView = a.getInteger(R.styleable.RadialProgressBar_outerMaxProgress, mMaxProgressOuterView)
mMaxProgressInnerView = a.getInteger(R.styleable.RadialProgressBar_innerMaxProgress, mMaxProgressInnerView)
mMaxProgressCenterView = a.getInteger(R.styleable.RadialProgressBar_centerMaxProgress, mMaxProgressCenterView)
a.recycle()
setAnimationInProgressView(isAnimationOn)
setMaxProgressOuterView(mMaxProgressOuterView)
setMaxProgressInnerView(mMaxProgressInnerView)
setMaxProgressCenterView(mMaxProgressCenterView)
setOuterProgress(mOuterProgress)
setOuterProgressColor(mProgressColorOuterView)
setInnerProgress(mInnerProgress)
Expand All @@ -100,20 +106,13 @@ class RadialProgressBar : View {
setStartAngleOuterView(mStartAngleOuterView)
}

private fun setAnimationInProgressView(animationOn: Boolean) {
if (!animationOn) {
mAnimationDurationOuterView = 0
mAnimationDurationInnerView = 0
mAnimationDurationCenterView = 0
}
}

private fun drawInnerCircle(canvas: Canvas?) {
val diameter = Math.min(mViewWidth, mViewHeight)
val paddingView = (diameter / 16.0).toFloat()
val stroke = (diameter / 8).toFloat()
val addVal = (stroke * 2) + 4f
val subVal = ((stroke * 2) + paddingView + 4f)
val addVal = (stroke * 2) + 8f
val subVal = ((stroke * 2) + paddingView + 8f)
val oval = RectF(paddingView + addVal, paddingView + addVal, diameter - subVal, diameter - subVal)
mPaintInnerView.color = mProgressColorInnerView
mPaintInnerView.strokeWidth = stroke
Expand All @@ -129,8 +128,8 @@ class RadialProgressBar : View {
val diameter = Math.min(mViewWidth, mViewHeight)
val paddingView = (diameter / 16.0).toFloat()
val stroke = (diameter / 8).toFloat()
val addVal = stroke + 2f
val subVal = (stroke + paddingView + 2f)
val addVal = stroke + 4f
val subVal = (stroke + paddingView + 4f)
val oval = RectF(paddingView + addVal, paddingView + addVal, diameter - subVal, diameter - subVal)
mPaintCenterView.color = mProgressColorCenterView
mPaintCenterView.strokeWidth = stroke
Expand Down Expand Up @@ -200,18 +199,47 @@ class RadialProgressBar : View {
return this.mStartAngleCenterView
}

fun getMaxProgressInnerView(): Int {
return this.mMaxProgressInnerView
}

fun getMaxProgressOuterView(): Int {
return this.mMaxProgressOuterView
}

fun getMaxProgressCenterView(): Int {
return this.mMaxProgressCenterView
}

fun setStartAngleCenterView(angle: Int) {
mStartAngleCenterView = angle
invalidate()
}

fun setStartAngleOuterView(angle: Int) {
mStartAngleOuterView = angle
invalidate()
}

fun setStartAngleInnerView(angle: Int) {
mStartAngleInnerView = angle
invalidate()
}

fun setMaxProgressOuterView(max: Int) {
mMaxProgressOuterView = max
invalidate()
}

fun setMaxProgressInnerView(max: Int) {
mMaxProgressInnerView = max
invalidate()
}

fun setMaxProgressCenterView(max: Int) {
mMaxProgressCenterView = max
invalidate()
}

fun setOuterProgress(progress: Int) {
if (progress != 0) mOuterProgress = progress
Expand All @@ -233,11 +261,33 @@ class RadialProgressBar : View {
invalidate()
}

private fun setAnimationInProgressView(animationOn: Boolean) {
if (!animationOn) {
mAnimationDurationOuterView = 0
mAnimationDurationInnerView = 0
mAnimationDurationCenterView = 0
}
}

fun useRoundedCorners(roundedCorners: Boolean) {
mRoundedCorners = roundedCorners
invalidate()
}

fun setProgressValues(innerProgress: Int, centerProgress: Int, outerProgress: Int) {
setInnerProgress(innerProgress)
setCenterProgress(centerProgress)
setOuterProgress(outerProgress)
invalidate()

}
fun setMaxProgressValues(innerProgress: Int, centerProgress: Int, outerProgress: Int) {
setMaxProgressInnerView(innerProgress)
setMaxProgressCenterView(centerProgress)
setMaxProgressOuterView(outerProgress)
invalidate()
}

fun setInnerProgress(progress: Int) {
if (progress != 0) mInnerProgress = progress
val animator =
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.mindorks

interface onClickListener {

fun onClickListener(innerProgress: Int, centerProgress: Int, outerProgress: Int)
}

3 changes: 3 additions & 0 deletions radialprogressbar/src/main/res/values/attrs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,18 @@
<attr name="outerProgress" format="integer"/>
<attr name="outerProgressColor" format="color"/>
<attr name="outerProgressStartAngle" format="integer"/>
<attr name="outerMaxProgress" format="integer"/>
<!--center view-->
<attr name="centerProgress" format="integer"/>
<attr name="centerProgressColor" format="color"/>
<attr name="centerProgressStartAngle" format="integer"/>
<attr name="centerMaxProgress" format="integer"/>

<!--inner view-->
<attr name="innerProgress" format="integer"/>
<attr name="innerProgressColor" format="color"/>
<attr name="innerProgressStartAngle" format="integer"/>
<attr name="innerMaxProgress" format="integer"/>


<!-- Common Attrs-->
Expand Down

0 comments on commit b56056e

Please sign in to comment.