From 93d07548fa7071bca5cf43b5b186e9252d8fca27 Mon Sep 17 00:00:00 2001 From: Anton Knyazev Date: Tue, 24 Oct 2017 19:01:42 +0300 Subject: [PATCH] Added alpha for dividers --- app/src/main/res/layout/fragment_test.xml | 1 + .../omegarecyclerview/DividerItemDecoration.java | 14 ++++++++------ .../libs/omegarecyclerview/OmegaRecyclerView.java | 3 ++- .../src/main/res/values/attrs.xml | 1 + 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/layout/fragment_test.xml b/app/src/main/res/layout/fragment_test.xml index 2fcf147..24be2ba 100644 --- a/app/src/main/res/layout/fragment_test.xml +++ b/app/src/main/res/layout/fragment_test.xml @@ -12,5 +12,6 @@ android:divider="@drawable/divider" android:dividerHeight="1dp" app:itemSpace="32dp" + app:alphaDivider="0.5" app:showDivider="middle"/> diff --git a/omegarecyclerviewlibs/src/main/java/com/omega_r/libs/omegarecyclerview/DividerItemDecoration.java b/omegarecyclerviewlibs/src/main/java/com/omega_r/libs/omegarecyclerview/DividerItemDecoration.java index 4798873..6d636a0 100644 --- a/omegarecyclerviewlibs/src/main/java/com/omega_r/libs/omegarecyclerview/DividerItemDecoration.java +++ b/omegarecyclerviewlibs/src/main/java/com/omega_r/libs/omegarecyclerview/DividerItemDecoration.java @@ -33,18 +33,20 @@ public interface ShowDivider { private int mDividerSize; private int mShowDivider; private final int mOffset; + private final float mDividerAlpha; private int mOrientation; - public DividerItemDecoration(Drawable divider, int dividerSize, int showDivider, int offset) { - this(divider, Orientation.UNKNOWN, dividerSize, showDivider, offset); + public DividerItemDecoration(Drawable divider, int dividerSize, int showDivider, int offset, float dividerAlpha) { + this(divider, Orientation.UNKNOWN, dividerSize, showDivider, offset, dividerAlpha); } - public DividerItemDecoration(Drawable divider, int orientation, int dividerSize, int showDivider, int offset) { + public DividerItemDecoration(Drawable divider, int orientation, int dividerSize, int showDivider, int offset, float dividerAlpha) { mOrientation = orientation; mDivider = divider; mDividerSize = dividerSize; mShowDivider = showDivider; mOffset = offset; + mDividerAlpha = dividerAlpha; updateSize(); } @@ -129,7 +131,7 @@ public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) left = child.getRight() + params.rightMargin; right = left + size; } - divider.setAlpha((int) (child.getAlpha() * 255f)); + divider.setAlpha((int) (child.getAlpha() * 255f * mDividerAlpha)); divider.setBounds(left, top, right, bottom); divider.draw(c); startIndex = i; @@ -152,7 +154,7 @@ public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) left = child.getLeft() - params.leftMargin - mOffset; right = left + size; } - divider.setAlpha((int) (child.getAlpha() * 255f)); + divider.setAlpha((int) (child.getAlpha() * 255f * mDividerAlpha)); divider.setBounds(left, top, right, bottom); divider.draw(c); } @@ -176,7 +178,7 @@ public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) right = left + size; } - divider.setAlpha((int) (child.getAlpha() * 255f)); + divider.setAlpha((int) (child.getAlpha() * 255f * mDividerAlpha)); divider.setBounds(left, top, right, bottom); divider.draw(c); break; diff --git a/omegarecyclerviewlibs/src/main/java/com/omega_r/libs/omegarecyclerview/OmegaRecyclerView.java b/omegarecyclerviewlibs/src/main/java/com/omega_r/libs/omegarecyclerview/OmegaRecyclerView.java index 8b767c7..a3702c5 100644 --- a/omegarecyclerviewlibs/src/main/java/com/omega_r/libs/omegarecyclerview/OmegaRecyclerView.java +++ b/omegarecyclerviewlibs/src/main/java/com/omega_r/libs/omegarecyclerview/OmegaRecyclerView.java @@ -116,7 +116,8 @@ public void initDivider(TypedArray a) { } float dividerHeight = a.getDimension(R.styleable.OmegaRecyclerView_android_dividerHeight, -1); - addItemDecoration(new DividerItemDecoration(dividerDrawable, (int) dividerHeight, showDivider, mItemSpace / 2)); + float alpha = a.getFloat(R.styleable.OmegaRecyclerView_alphaDivider, 1); + addItemDecoration(new DividerItemDecoration(dividerDrawable, (int) dividerHeight, showDivider, mItemSpace / 2, alpha)); } } } diff --git a/omegarecyclerviewlibs/src/main/res/values/attrs.xml b/omegarecyclerviewlibs/src/main/res/values/attrs.xml index e8768d2..561fe80 100644 --- a/omegarecyclerviewlibs/src/main/res/values/attrs.xml +++ b/omegarecyclerviewlibs/src/main/res/values/attrs.xml @@ -11,6 +11,7 @@ + \ No newline at end of file