Skip to content

Commit

Permalink
[+] color in list
Browse files Browse the repository at this point in the history
  • Loading branch information
hi-manshu committed Mar 8, 2019
1 parent 79a2813 commit d8098ac
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 46 deletions.
17 changes: 16 additions & 1 deletion app/src/main/java/com/mindorks/app/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.mindorks.app

import android.graphics.Color
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
Expand All @@ -9,7 +10,21 @@ class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
progress.setProgressValues(100, 100, 100)
progress.setProgressValues(90, 90, 90)
val outerColor = ArrayList<Int>()
outerColor.add(Color.parseColor("#fbab00"))
outerColor.add(Color.parseColor("#f5004b"))
progress.setOuterProgressColor(outerColor)


val innerColor = ArrayList<Int>()
innerColor.add(Color.parseColor("#5eb3fc"))
innerColor.add(Color.parseColor("#28007d"))
progress.setInnerProgressColor(innerColor)

val centerColor = ArrayList<Int>()
centerColor.add(Color.parseColor("#3affaa"))
centerColor.add(Color.parseColor("#1b93ff"))
progress.setCenterProgressColor(centerColor)
}
}
7 changes: 3 additions & 4 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@


<com.mindorks.RadialProgressBar
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_width="400dp"
android:layout_height="400dp"
android:id="@+id/progress"
app:useRoundedCorner="true"
app:innerMaxProgress="100"
Expand All @@ -19,7 +19,6 @@
android:layout_centerInParent="true"
app:isAnimationOn="true"
app:hasTwoProgressView="false"
app:hasOneProgressView="false"
/>
app:hasOneProgressView="false"/>

</RelativeLayout>
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.android.tools.build:gradle:3.3.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

// NOTE: Do not place your application dependencies here; they belong
Expand Down
120 changes: 80 additions & 40 deletions radialprogressbar/src/main/java/com/mindorks/RadialProgressBar.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ import android.view.View
import android.view.animation.DecelerateInterpolator
import android.graphics.Shader
import android.graphics.LinearGradient
import android.util.Log
import kotlin.collections.ArrayList


/**
Expand Down Expand Up @@ -50,7 +52,6 @@ class RadialProgressBar : View {
private var backgroundPaint = Paint(Paint.ANTI_ALIAS_FLAG)
private var hasOneProgressView = false
private var hasTwoProgressView = false
private var hasGradientShade = true

/**
* Data of the Outer View
Expand All @@ -64,8 +65,7 @@ class RadialProgressBar : View {
private var mProgressColorOuterView = Color.parseColor("#f52e67")
private var mEmptyProgressColorOuterView = Color.parseColor("#F5F5F5")
private var mPaintOuterView = Paint(Paint.ANTI_ALIAS_FLAG)
private var mTopColorOuterView = Color.parseColor("#fbab00")
private var mBottomColorOuterView = Color.parseColor("#f5004b")
private var mOuterColor = ArrayList<Int>()
/**
* Data of the Center View
*/
Expand All @@ -77,8 +77,7 @@ class RadialProgressBar : View {
private var mProgressColorCenterView = Color.parseColor("#c2ff07")
private var mPaintCenterView = Paint(Paint.ANTI_ALIAS_FLAG)
private var mEmptyProgressColorCenterView = Color.parseColor("#F5F5F5")
private var mTopColorCenterView = Color.parseColor("#3affaa")
private var mBottomColorCenterView = Color.parseColor("#1b93ff")
private var mCenterColor = ArrayList<Int>()


/**
Expand All @@ -92,8 +91,7 @@ class RadialProgressBar : View {
private var mProgressColorInnerView = Color.parseColor("#0dffab")
private var mPaintInnerView = Paint(Paint.ANTI_ALIAS_FLAG)
private var mEmptyProgressColorInnerView = Color.parseColor("#F5F5F5")
private var mTopColorInnerView = Color.parseColor("#5eb3fc")
private var mBottomColorInnerView = Color.parseColor("#28007d")
private var mInnerColor = ArrayList<Int>()

/**
* @onDraw draws all the Layout on Screen
Expand Down Expand Up @@ -161,11 +159,14 @@ class RadialProgressBar : View {
setMaxProgressInnerView(mMaxProgressInnerView)
setMaxProgressCenterView(mMaxProgressCenterView)
setOuterProgress(mOuterProgress)
setOuterProgressColor(mProgressColorOuterView)
mOuterColor.add(mProgressColorOuterView)
setOuterProgressColor(mOuterColor)
setInnerProgress(mInnerProgress)
setInnerProgressColor(mProgressColorInnerView)
mInnerColor.add(mProgressColorInnerView)
setInnerProgressColor(mInnerColor)
setCenterProgress(mCenterProgress)
setCenterProgressColor(mProgressColorCenterView)
mCenterColor.add(mProgressColorCenterView)
setCenterProgressColor(mCenterColor)
useRoundedCorners(mRoundedCorners)
setStartAngleCenterView(mStartAngleCenterView)
setStartAngleInnerView(mStartAngleInnerView)
Expand All @@ -183,18 +184,10 @@ class RadialProgressBar : View {
val addVal = (stroke * 2) + 20f
val subVal = ((stroke * 2) + paddingView + 20f)
val oval = RectF(paddingView + addVal, paddingView + addVal, diameter - subVal, diameter - subVal)
mPaintInnerView.color = mProgressColorInnerView
mPaintInnerView.strokeWidth = stroke
mPaintInnerView.isAntiAlias = true
mPaintInnerView.strokeCap = if (mRoundedCorners) Paint.Cap.ROUND else Paint.Cap.BUTT
mPaintInnerView.style = Paint.Style.STROKE
if (hasGradientShade) {
mPaintInnerView.shader = LinearGradient(
0f, 0f, 0f,
height.toFloat(), mTopColorInnerView,
mBottomColorInnerView, Shader.TileMode.MIRROR
)
}
if (mElevation) {
setLayerType(View.LAYER_TYPE_SOFTWARE, mPaintInnerView)
mPaintInnerView.setShadowLayer(
Expand All @@ -203,6 +196,26 @@ class RadialProgressBar : View {
}
if (mEmptyProgressBar) drawProgressBackArc(mEmptyProgressColorInnerView, oval, stroke, canvas)

when {
mInnerColor.size == 1 -> mPaintInnerView.color = mInnerColor[0]
mInnerColor.size == 2 -> mPaintInnerView.shader = LinearGradient(
0f, 0f, 0f, height.toFloat(),
mInnerColor[0],
mInnerColor[1],
Shader.TileMode.MIRROR
)
mInnerColor.size > 2 -> {
mPaintInnerView.shader = LinearGradient(
0f, 0f, 0f,
height.toFloat(),
mInnerColor[0],
mInnerColor[1],
Shader.TileMode.MIRROR
)
Log.e("RadialProgressBar", "Inner Progress Color Can't Be more then Two colors")
}
mInnerColor.size == 0 -> mPaintInnerView.color = mProgressColorInnerView
}
canvas?.drawArc(
oval, mStartAngleInnerView.toFloat(), mSweepAngleInnerView.toFloat(), false, mPaintInnerView
)
Expand All @@ -219,26 +232,38 @@ class RadialProgressBar : View {
val addVal = stroke + 10f
val subVal = (stroke + paddingView + 10f)
val oval = RectF(paddingView + addVal, paddingView + addVal, diameter - subVal, diameter - subVal)
mPaintCenterView.color = mProgressColorCenterView
mPaintCenterView.strokeWidth = stroke
mPaintCenterView.isAntiAlias = true
mPaintCenterView.strokeCap = if (mRoundedCorners) Paint.Cap.ROUND else Paint.Cap.BUTT
mPaintCenterView.style = Paint.Style.STROKE
if (hasGradientShade) {
mPaintCenterView.shader = LinearGradient(
0f, 0f, 0f,
height.toFloat(), mTopColorCenterView,
mBottomColorCenterView, Shader.TileMode.MIRROR
)
}

if (mElevation) {
setLayerType(View.LAYER_TYPE_SOFTWARE, mPaintCenterView)
mPaintCenterView.setShadowLayer(
1f, 1f, 0f, Color.argb(128, 0, 0, 0)
)
}
if (mEmptyProgressBar) drawProgressBackArc(mEmptyProgressColorCenterView, oval, stroke, canvas)
when {
mCenterColor.size == 1 -> mPaintCenterView.color = mCenterColor[0]
mCenterColor.size == 2 -> mPaintCenterView.shader = LinearGradient(
0f, 0f, 0f,
height.toFloat(),
mCenterColor[0],
mCenterColor[1],
Shader.TileMode.MIRROR
)
mCenterColor.size > 2 -> {
mPaintCenterView.shader = LinearGradient(
0f, 0f, 0f,
height.toFloat(),
mCenterColor[0],
mCenterColor[1],
Shader.TileMode.MIRROR
)
Log.e("RadialProgressBar", "Center Progress Color Can't Be more then Two colors")
}
mCenterColor.size == 0 -> mPaintCenterView.color = mProgressColorCenterView
}
canvas?.drawArc(
oval, mStartAngleCenterView.toFloat(), mSweepAngleCenterView.toFloat(), false, mPaintCenterView
)
Expand All @@ -253,24 +278,39 @@ class RadialProgressBar : View {
val paddingView = (diameter / 16.0).toFloat()
val stroke = (diameter / 8).toFloat()
val oval = RectF(paddingView, paddingView, diameter - paddingView, diameter - paddingView)
mPaintOuterView.color = mProgressColorOuterView
mPaintOuterView.strokeWidth = stroke

mPaintOuterView.isAntiAlias = true
mPaintOuterView.strokeCap = if (mRoundedCorners) Paint.Cap.ROUND else Paint.Cap.BUTT
mPaintOuterView.style = Paint.Style.STROKE
if (hasGradientShade) {
mPaintOuterView.shader = LinearGradient(
0f, 0f, 0f, height.toFloat(), mTopColorOuterView,
mBottomColorOuterView, Shader.TileMode.MIRROR
)
}
if (mElevation) {
setLayerType(View.LAYER_TYPE_SOFTWARE, mPaintOuterView)
mPaintOuterView.setShadowLayer(
1f, 1f, 0f, Color.argb(128, 0, 0, 0)
)
}
if (mEmptyProgressBar) drawProgressBackArc(mEmptyProgressColorOuterView, oval, stroke, canvas)
when {
mOuterColor.size == 1 -> mPaintOuterView.color = mOuterColor[0]
mOuterColor.size == 2 -> mPaintOuterView.shader = LinearGradient(
0f, 0f, 0f,
height.toFloat(),
mOuterColor[0],
mOuterColor[1],
Shader.TileMode.MIRROR
)
mOuterColor.size > 2 -> {
mPaintOuterView.shader = LinearGradient(
0f, 0f, 0f,
height.toFloat(),
mOuterColor[0],
mOuterColor[1],
Shader.TileMode.MIRROR
)
Log.e("RadialProgressBar", "Outer Progress Color Can't Be more then Two colors")
}
mOuterColor.size == 0 -> mPaintOuterView.color = mProgressColorOuterView
}
canvas?.drawArc(
oval, mStartAngleOuterView.toFloat(), mSweepAngleOuterView.toFloat(), false, mPaintOuterView
)
Expand Down Expand Up @@ -517,8 +557,8 @@ class RadialProgressBar : View {
/**
* Set Color for Outer ProgressView
*/
fun setOuterProgressColor(color: Int) {
mProgressColorOuterView = color
fun setOuterProgressColor(color: ArrayList<Int>) {
mOuterColor = color
invalidate()
}

Expand Down Expand Up @@ -624,9 +664,9 @@ class RadialProgressBar : View {
/**
set the progress color for center progressview
*/
fun setInnerProgressColor(color: Int) {
fun setInnerProgressColor(color: ArrayList<Int>) {
if (!(hasOneProgressView && hasTwoProgressView)) {
mProgressColorInnerView = color
mInnerColor = color
invalidate()
}
}
Expand Down Expand Up @@ -657,9 +697,9 @@ class RadialProgressBar : View {
/**
set the color for center progressview
*/
fun setCenterProgressColor(color: Int) {
fun setCenterProgressColor(color: ArrayList<Int>) {
if (!(hasOneProgressView && !hasTwoProgressView)) {
mProgressColorCenterView = color
mCenterColor = color
invalidate()
}
}
Expand Down

0 comments on commit d8098ac

Please sign in to comment.