diff --git a/README.md b/README.md index 0797000..7dc43d3 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,6 @@ a zigzag view for using for ticket or invoice # Setup - -This library requires `minSdkVersion` to be set to `14` or above, like the [Official Support Library](https://developer.android.com/topic/libraries/support-library/index.html#api-versions). - #### Step #1. Add the JitPack repository to root build.gradle file: ```gradle @@ -28,7 +25,7 @@ allprojects { ```groovy dependencies { - compile 'com.github.beigirad:ZigzagView:1.0.3' + implementation 'com.github.beigirad:ZigzagView:1.0.4' } ``` @@ -41,16 +38,31 @@ dependencies { app:zigzagBackgroundColor="#8bc34a" app:zigzagElevation="8dp" app:zigzagHeight="10dp" + app:zigzagShadowAlpha="0.9" + app:zigzagSides="top|bottom" app:zigzagPaddingContent="16dp"> // add child view(s) ``` +# Attributes +| Attribute | Type | Default Value | Description | +|:---------------------:|:---------------:|-----------------|:-----------------------------:| +| zigzagHeight | dimension | `0dp` | height of zigzag jags | +| zigzagElevation | dimension | `0dp` | side of shadow | +| zigzagBackgroundColor | color | `Color.WHITE` | background color | +| zigzagPaddingContent | dimension | `0dp` | content padding | +| zigzagPadding | dimension | `0dp` | view padding | +| zigzagPaddingLeft | dimension | `zigzagPadding` | left side view padding | +| zigzagPaddingRight | dimension | `zigzagPadding` | right side view padding | +| zigzagPaddingBottom | dimension | `zigzagPadding` | bottom side view padding | +| zigzagPaddingTop | dimension | `zigzagPadding` | top side view padding | +| zigzagSides | enum | `bottom` | choosing zigzag sides | +| zigzagShadowAlpha | float `[0,1.0]` | `0.5` | amount of shadow transparency | # Thanks - [**Reza Kardoost**](https://github.com/RezaKardoost) for helping me out with ZigzagView Shadow/Elevation. # License diff --git a/library/build.gradle b/library/build.gradle index 5292971..03020fa 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' -group='com.github.beigirad' +group = 'com.github.beigirad' android { @@ -9,8 +9,8 @@ android { defaultConfig { minSdkVersion 14 targetSdkVersion 26 - versionCode 1 - versionName "1.0" + versionCode 104 + versionName "1.0.4" } @@ -24,6 +24,5 @@ android { } dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:26.1.0' } diff --git a/library/src/main/java/ir/beigirad/zigzagview/ZigzagView.java b/library/src/main/java/ir/beigirad/zigzagview/ZigzagView.java index 527c859..d531576 100644 --- a/library/src/main/java/ir/beigirad/zigzagview/ZigzagView.java +++ b/library/src/main/java/ir/beigirad/zigzagview/ZigzagView.java @@ -30,7 +30,6 @@ public class ZigzagView extends FrameLayout { private static final int ZIGZAG_TOP = 1; private static final int ZIGZAG_BOTTOM = 2; // default to be backward compatible.Like google ;) - private final String TAG = this.getClass().getSimpleName(); private int zigzagHeight; private int zigzagElevation; private int zigzagPaddingContent; @@ -41,6 +40,7 @@ public class ZigzagView extends FrameLayout { private int zigzagPaddingTop; private int zigzagPaddingBottom; private int zigzagSides; + private float zigzagShadowAlpha; private Path pathZigzag = new Path(); private Paint paintZigzag; @@ -77,27 +77,29 @@ public ZigzagView(Context context, @Nullable AttributeSet attrs, int defStyleAtt private void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ZigzagView, defStyleAttr, defStyleRes); - this.zigzagElevation = (int) a.getDimension(R.styleable.ZigzagView_zigzagElevation, 0.0f); - this.zigzagHeight = (int) a.getDimension(R.styleable.ZigzagView_zigzagHeight, 0.0f); - this.zigzagPaddingContent = (int) a.getDimension(R.styleable.ZigzagView_zigzagPaddingContent, 0.0f); - this.zigzagBackgroundColor = a.getColor(R.styleable.ZigzagView_zigzagBackgroundColor, Color.WHITE); - this.zigzagPadding = (int) a.getDimension(R.styleable.ZigzagView_zigzagPadding, zigzagElevation); - this.zigzagPaddingLeft = (int) a.getDimension(R.styleable.ZigzagView_zigzagPaddingLeft, zigzagPadding); - this.zigzagPaddingRight = (int) a.getDimension(R.styleable.ZigzagView_zigzagPaddingRight, zigzagPadding); - this.zigzagPaddingTop = (int) a.getDimension(R.styleable.ZigzagView_zigzagPaddingTop, zigzagPadding); - this.zigzagPaddingBottom = (int) a.getDimension(R.styleable.ZigzagView_zigzagPaddingBottom, zigzagPadding); - this.zigzagSides = a.getInt(R.styleable.ZigzagView_zigzagSides, ZIGZAG_BOTTOM); + zigzagElevation = (int) a.getDimension(R.styleable.ZigzagView_zigzagElevation, 0.0f); + zigzagHeight = (int) a.getDimension(R.styleable.ZigzagView_zigzagHeight, 0.0f); + zigzagPaddingContent = (int) a.getDimension(R.styleable.ZigzagView_zigzagPaddingContent, 0.0f); + zigzagBackgroundColor = a.getColor(R.styleable.ZigzagView_zigzagBackgroundColor, Color.WHITE); + zigzagPadding = (int) a.getDimension(R.styleable.ZigzagView_zigzagPadding, zigzagElevation); + zigzagPaddingLeft = (int) a.getDimension(R.styleable.ZigzagView_zigzagPaddingLeft, zigzagPadding); + zigzagPaddingRight = (int) a.getDimension(R.styleable.ZigzagView_zigzagPaddingRight, zigzagPadding); + zigzagPaddingTop = (int) a.getDimension(R.styleable.ZigzagView_zigzagPaddingTop, zigzagPadding); + zigzagPaddingBottom = (int) a.getDimension(R.styleable.ZigzagView_zigzagPaddingBottom, zigzagPadding); + zigzagSides = a.getInt(R.styleable.ZigzagView_zigzagSides, ZIGZAG_BOTTOM); + zigzagShadowAlpha = a.getFloat(R.styleable.ZigzagView_zigzagShadowAlpha, 0.5f); a.recycle(); - this.paintZigzag = new Paint(); - this.paintZigzag.setColor(zigzagBackgroundColor); - this.paintZigzag.setStyle(Style.FILL); + zigzagElevation = Math.min(zigzagElevation, 25); + zigzagShadowAlpha = Math.min(zigzagShadowAlpha, 100); + + paintZigzag = new Paint(); + paintZigzag.setColor(zigzagBackgroundColor); + paintZigzag.setStyle(Style.FILL); paintShadow = new Paint(Paint.ANTI_ALIAS_FLAG); paintShadow.setColorFilter(new PorterDuffColorFilter(BLACK, SRC_IN)); - paintShadow.setAlpha(51); // 20% - - zigzagElevation = Math.min(zigzagElevation, 25); + paintShadow.setAlpha((int) (zigzagShadowAlpha * 100)); setLayerType(View.LAYER_TYPE_SOFTWARE, null); diff --git a/library/src/main/res/values/attrs.xml b/library/src/main/res/values/attrs.xml index b656045..8269ebc 100644 --- a/library/src/main/res/values/attrs.xml +++ b/library/src/main/res/values/attrs.xml @@ -14,5 +14,6 @@ + \ No newline at end of file diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml index dfddb65..b0b2b2c 100644 --- a/sample/src/main/res/layout/activity_main.xml +++ b/sample/src/main/res/layout/activity_main.xml @@ -13,6 +13,7 @@ app:zigzagBackgroundColor="#8bc34a" app:zigzagElevation="8dp" app:zigzagHeight="10dp" + app:zigzagShadowAlpha="0.9" app:zigzagSides="top|bottom" app:zigzagPaddingContent="16dp"> diff --git a/shot/zigzag.png b/shot/zigzag.png index 1d046f7..76947b7 100644 Binary files a/shot/zigzag.png and b/shot/zigzag.png differ