diff --git a/.gitignore b/.gitignore index c6cbe56..a1e84f2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ .DS_Store /build /captures +/.idea diff --git a/cslibrary/build.gradle b/cslibrary/build.gradle index 3d70f41..6ab6b83 100644 --- a/cslibrary/build.gradle +++ b/cslibrary/build.gradle @@ -21,5 +21,6 @@ android { } dependencies { - + compile 'com.android.support:support-annotations:24.2.1' + compile 'com.android.support:support-v4:24.2.1' } diff --git a/cslibrary/src/main/java/com/hitomi/cslibrary/CrazyShadow.java b/cslibrary/src/main/java/com/hitomi/cslibrary/CrazyShadow.java index 12234bf..b4ac643 100644 --- a/cslibrary/src/main/java/com/hitomi/cslibrary/CrazyShadow.java +++ b/cslibrary/src/main/java/com/hitomi/cslibrary/CrazyShadow.java @@ -102,6 +102,11 @@ public static class Builder { */ private String impl; + /** + * Alpha to the shadow + */ + private float shadowAlpha = 1.0f; + /** * 阴影的基本色 */ @@ -153,6 +158,15 @@ public Builder setImpl(String impl) { return this; } + /** + * Add alpha to the shadow. + * Value between 0 and 1 + */ + public Builder setShadowAlpha(float shadowAlpha) { + this.shadowAlpha = Math.max(Math.min(shadowAlpha, 1), 0); + return this; + } + /** * 阴影的基本颜色,即最深的颜色, {@link CrazyShadowAttr#setBaseShadowColor(int)} * 方法会自动计算出绘制阴影时需要的 {@link #colors} @@ -223,6 +237,7 @@ private CrazyShadow create() { colors = new int[]{0x63000000, 0x32000000, 0x00000000}; CrazyShadowAttr attr = new CrazyShadowAttr(); attr.setImpl(impl); + attr.setShadowAlpha(shadowAlpha); attr.setBaseShadowColor(baseShadowColor); attr.setBackground(background); attr.setColors(colors); diff --git a/cslibrary/src/main/java/com/hitomi/cslibrary/base/CrazyShadowAttr.java b/cslibrary/src/main/java/com/hitomi/cslibrary/base/CrazyShadowAttr.java index 65ecda1..452ba30 100644 --- a/cslibrary/src/main/java/com/hitomi/cslibrary/base/CrazyShadowAttr.java +++ b/cslibrary/src/main/java/com/hitomi/cslibrary/base/CrazyShadowAttr.java @@ -15,6 +15,12 @@ public class CrazyShadowAttr { */ private String impl; + /** + * Add alpha to the shadow. + * Value between 0 and 1 + */ + private float shadowAlpha = 1.0f; + /** * 阴影的基本颜色,即最深的颜色, {@link #setBaseShadowColor(int)} 方法会自动计算出 * 绘制阴影时需要的 {@link #colors} @@ -50,6 +56,9 @@ public class CrazyShadowAttr { @CrazyShadowDirection private int direction; + public CrazyShadowAttr() { + } + public String getImpl() { return impl; } @@ -58,12 +67,17 @@ public void setImpl(String impl) { this.impl = impl; } + public void setShadowAlpha(float shadowAlpha) { + this.shadowAlpha = Math.max(Math.min(shadowAlpha, 1), 0); + this.shadowAlpha = shadowAlpha; + } + public void setBaseShadowColor(int baseShadowColor) { this.baseShadowColor = baseShadowColor; if (colors == null) { colors = new int[3]; - colors[0] = ColorUtils.setAlphaComponent(baseShadowColor, 255); - colors[1] = ColorUtils.setAlphaComponent(baseShadowColor, 128); + colors[0] = ColorUtils.setAlphaComponent(baseShadowColor, (int)(255 * shadowAlpha)); + colors[1] = ColorUtils.setAlphaComponent(baseShadowColor, (int)(128 * shadowAlpha)); colors[2] = ColorUtils.setAlphaComponent(baseShadowColor, 0); } }