From 1738d28d0c81c206e177e54c1147b6f38e763d38 Mon Sep 17 00:00:00 2001 From: Varun Date: Sun, 17 Jun 2018 18:54:10 +0530 Subject: [PATCH] Add attribute to control opacity of shadow. --- README.md | 3 ++- theglowingloader/build.gradle | 4 ++-- .../java/com/varunest/loader/Configuration.java | 15 +++++++++++++++ .../com/varunest/loader/TheGlowingLoader.java | 1 + .../varunest/loader/animators/LineAnimator.java | 4 ++-- .../varunest/loader/animators/RippleAnimator.java | 6 +++--- theglowingloader/src/main/res/values/attrs.xml | 1 + 7 files changed, 26 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4495b11..01b285d 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ and then add dependency ```groovy dependencies { - implementation 'com.github.varunest:TheGlowingLoader:1.0.3' + implementation 'com.github.varunest:TheGlowingLoader:1.0.4' } ``` @@ -64,6 +64,7 @@ dependencies { + ``` You can also access and modify all these attributes at runtime by getting the reference of `TheGlowingLoader` and calling its `setConfiguration` method. diff --git a/theglowingloader/build.gradle b/theglowingloader/build.gradle index 0a1f998..c7cb352 100644 --- a/theglowingloader/build.gradle +++ b/theglowingloader/build.gradle @@ -8,8 +8,8 @@ android { defaultConfig { minSdkVersion 14 targetSdkVersion 27 - versionCode 4 - versionName "1.0.3" + versionCode 5 + versionName "1.0.4" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/theglowingloader/src/main/java/com/varunest/loader/Configuration.java b/theglowingloader/src/main/java/com/varunest/loader/Configuration.java index 6257925..7ac51fb 100644 --- a/theglowingloader/src/main/java/com/varunest/loader/Configuration.java +++ b/theglowingloader/src/main/java/com/varunest/loader/Configuration.java @@ -16,6 +16,7 @@ public class Configuration { private int lineStrokeWidth; private boolean disableShadows; private boolean disableRipple; + private float shadowOpacity; Configuration() { @@ -24,6 +25,7 @@ public class Configuration { public Configuration(Context context) { disableShadows = false; disableRipple = false; + shadowOpacity = .2f; line1Color = ContextCompat.getColor(context, R.color.white); line2Color = ContextCompat.getColor(context, R.color.red); lineStrokeWidth = Constants.DEF_LINE_STROKE_WIDTH; @@ -104,4 +106,17 @@ public boolean isDisableRipple() { public void setDisableRipple(boolean disableRipple) { this.disableRipple = disableRipple; } + + public float getShadowOpacity() { + return shadowOpacity; + } + + public void setShadowOpacity(float shadowOpacity) { + if (shadowOpacity < 0.0f) { + shadowOpacity = 0f; + } else if (shadowOpacity > 1f) { + shadowOpacity = 1f; + } + this.shadowOpacity = shadowOpacity; + } } diff --git a/theglowingloader/src/main/java/com/varunest/loader/TheGlowingLoader.java b/theglowingloader/src/main/java/com/varunest/loader/TheGlowingLoader.java index 52c9ace..21eaf99 100644 --- a/theglowingloader/src/main/java/com/varunest/loader/TheGlowingLoader.java +++ b/theglowingloader/src/main/java/com/varunest/loader/TheGlowingLoader.java @@ -57,6 +57,7 @@ private void getStuffFromXML(AttributeSet attrs) { configuration.setLineStrokeWidth(a.getInt(R.styleable.TheGlowingLoader_theglowingloader_line_stroke_width, Constants.DEF_LINE_STROKE_WIDTH)); configuration.setDisableShadows(a.getBoolean(R.styleable.TheGlowingLoader_theglowingloader_disable_shadows, false)); configuration.setDisableRipple(a.getBoolean(R.styleable.TheGlowingLoader_theglowingloader_disable_ripple, false)); + configuration.setShadowOpacity(a.getFloat(R.styleable.TheGlowingLoader_theglowingloader_shadow_opacity, .2f)); } public void setConfiguration(Configuration configuration) { diff --git a/theglowingloader/src/main/java/com/varunest/loader/animators/LineAnimator.java b/theglowingloader/src/main/java/com/varunest/loader/animators/LineAnimator.java index a898689..a9bbb2c 100644 --- a/theglowingloader/src/main/java/com/varunest/loader/animators/LineAnimator.java +++ b/theglowingloader/src/main/java/com/varunest/loader/animators/LineAnimator.java @@ -81,7 +81,7 @@ public void draw(Canvas canvas, Paint paint) { paint.setMaskFilter(new BlurMaskFilter(70, BlurMaskFilter.Blur.NORMAL)); paint.setStrokeWidth(2.666f * configuration.getLineStrokeWidth()); paint.setColor(configuration.getLine1Color()); - paint.setAlpha(0x38); + paint.setAlpha((int) (255 * configuration.getShadowOpacity())); if (wxa11 != wxa12 && wya11 != wya12) canvas.drawLine(wxa11, wya11 + 100, wxa12, wya12 + 100, paint); if (wxa21 != wxa22 && wya21 != wya22) @@ -90,7 +90,7 @@ public void draw(Canvas canvas, Paint paint) { canvas.drawLine(wxa31, wya31 + 100, wxa32, wya32 + 100, paint); paint.setColor(configuration.getLine2Color()); - paint.setAlpha(0x38); + paint.setAlpha((int) (255 * configuration.getShadowOpacity())); if (rxa11 != rxa12 && rya11 != rya12) canvas.drawLine(rxa11, rya11 + 100, rxa12, rya12 + 100, paint); if (rxa21 != rxa22 && rya21 != rya22) diff --git a/theglowingloader/src/main/java/com/varunest/loader/animators/RippleAnimator.java b/theglowingloader/src/main/java/com/varunest/loader/animators/RippleAnimator.java index 8c7aadb..5c20cb9 100644 --- a/theglowingloader/src/main/java/com/varunest/loader/animators/RippleAnimator.java +++ b/theglowingloader/src/main/java/com/varunest/loader/animators/RippleAnimator.java @@ -146,9 +146,9 @@ public void start(final Callback callback, float degree1, float degree2, float d startCircleMinor(callback); if (degree1 != Constants.INVALID_DEG) startParticleAnimation(degree1, PARTICLE_TYPE_TRIANGLE, configuration.getParticle1Color()); - if(degree2 != Constants.INVALID_DEG) + if (degree2 != Constants.INVALID_DEG) startParticleAnimation(degree2, PARTICLE_TYPE_CIRCLE, configuration.getParticle2Color()); - if(degree3 != Constants.INVALID_DEG) + if (degree3 != Constants.INVALID_DEG) startParticleAnimation(degree3, PARTICLE_TYPE_TRIANGLE, configuration.getParticle3Color()); } @@ -164,7 +164,7 @@ public void draw(Canvas canvas, Paint paint) { if (!configuration.isDisableShadows()) { paint.setMaskFilter(new BlurMaskFilter(50, BlurMaskFilter.Blur.NORMAL)); paint.setStrokeWidth(.28f * circleRadius); - paint.setAlpha((int) (255 * circleAlpha * .4)); + paint.setAlpha((int) (255 * circleAlpha * configuration.getShadowOpacity())); canvas.drawCircle(cX, cY + 100, circleRadius, paint); } diff --git a/theglowingloader/src/main/res/values/attrs.xml b/theglowingloader/src/main/res/values/attrs.xml index 183ee9c..0927f98 100644 --- a/theglowingloader/src/main/res/values/attrs.xml +++ b/theglowingloader/src/main/res/values/attrs.xml @@ -10,5 +10,6 @@ + \ No newline at end of file