RevelyGradient
RevelyGradient is an Android library for easy gradient management !
About Revely
Web site - Open Source projects - Become my Patreon - Twitter - Instagram - Behance
Installation
Add the dependency
dependencies {
compile 'co.revely:gradient:1.0.1'
}
Usage
Kotlin
RevelyGradient
.linear()
.colors(intArrayOf(Color.parseColor("#FF2525"), Color.parseColor("#6078EA")))
.onBackgroundOf(view)
Java
RevelyGradient
.linear()
.colors(new int[] {
Color.parseColor("#FF2525"), Color.parseColor("#6078EA")
}
)
.onBackgroundOf(findViewById(R.id.view));
Choose the type of your gradient
.radial() .linear() .sweep()
Choose the gradient colors
.colors(intArrayOf(Color.parseColor("#FF2525"), Color.parseColor("#6078EA"), Color.parseColor("#6078EA")))
Center your gradient
.center(100f, 200f)
Rotate the gradient around the center
.angle(42)
Change the transparency of your gradient
.alpha(0.5f)
Scale the gradient
.scale(0.5f, 1f)
Change the positions of color in the gradient
.offsets(floatArrayOf(0f, 0.1f, 0.5f, 1f))
Apply the gradient on the background of view
.onBackgroundOf(text_view)
or directly on the view (TextView, ImageView, Button, ...)
.on(text_view)
You can also use the layer function to stack several gradients
.layer(
RevelyGradient
.radial(TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 150f, Resources.getSystem().displayMetrics ))
.colors(intArrayOf(Color.parseColor("#ffdd55"), Color.parseColor("#ffdd55"), Color.parseColor("#ff543e"), Color.parseColor("#c837ab")))
.offsets(floatArrayOf(0f, 0.1f, 0.5f, 1f))
.center(50, 400),
RevelyGradient
.radial(TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 170f, Resources.getSystem().displayMetrics ))
.colors(intArrayOf(Color.parseColor("#3771c8"), Color.parseColor("#3771c8"), Color.parseColor("#006600ff")))
.offsets(floatArrayOf(0f, 0.128f, 1f))
.angle(-15f)
.scale(1f, 0.4f)
.center(0, 0) ).onBackgroundOf(view)
To animate your gradient use .animate()
val color1 = Color.parseColor("#00c6ff") val color2 = Color.parseColor("#ff72ff") val valueAnimator = ValueAnimator.ofFloat(0f, 360f) valueAnimator.duration = 15000 valueAnimator.repeatCount = ValueAnimator.INFINITE valueAnimator.interpolator = LinearInterpolator() RevelyGradient.sweep()
.colors(intArrayOf(color1, color2, color1))
.animate(valueAnimator, {
_valueAnimator, _gradientDrawable ->
_gradientDrawable.angle = _valueAnimator.animatedValue as Float
}
)
.onBackgroundOf(container) valueAnimator.start()