From b3cab61a025e1d828785b930e59721c4dbe62a08 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Sun, 20 Dec 2015 14:12:37 -0800 Subject: Add some small shadow to cards --- .../github/daneren2005/dsub/view/CardView.java | 22 +++++++++------ .../dsub/view/GridSpacingDecoration.java | 33 ++++++++++++++++------ app/src/main/res/layout/album_cell_item.xml | 3 +- app/src/main/res/layout/basic_cell_item.xml | 3 +- app/src/main/res/values/dimens.xml | 1 + 5 files changed, 43 insertions(+), 19 deletions(-) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/view/CardView.java b/app/src/main/java/github/daneren2005/dsub/view/CardView.java index ba6b66a4..973e63fa 100644 --- a/app/src/main/java/github/daneren2005/dsub/view/CardView.java +++ b/app/src/main/java/github/daneren2005/dsub/view/CardView.java @@ -2,12 +2,12 @@ package github.daneren2005.dsub.view; import android.annotation.TargetApi; import android.content.Context; -import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Path; import android.graphics.RectF; import android.os.Build; import android.util.AttributeSet; +import android.util.Log; import android.widget.FrameLayout; import github.daneren2005.dsub.R; @@ -15,27 +15,23 @@ import github.daneren2005.dsub.R; public class CardView extends FrameLayout{ public CardView(Context context) { super(context); - this.setClipChildren(true); - this.setBackgroundResource(R.drawable.card_rounded_corners); + init(context); } public CardView(Context context, AttributeSet attrs) { super(context, attrs); - this.setClipChildren(true); - this.setBackgroundResource(R.drawable.card_rounded_corners); + init(context); } public CardView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); - this.setClipChildren(true); - this.setBackgroundResource(R.drawable.card_rounded_corners); + init(context); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public CardView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); - this.setClipChildren(true); - this.setBackgroundResource(R.drawable.card_rounded_corners); + init(context); } @Override @@ -47,4 +43,12 @@ public class CardView extends FrameLayout{ canvas.clipPath(clipPath); super.onDraw(canvas); } + + private void init(Context context) { + setClipChildren(true); + setBackgroundResource(R.drawable.card_rounded_corners); + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + setElevation(10.0f); + } + } } diff --git a/app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java b/app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java index c6d3dbb1..a33746c4 100644 --- a/app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java +++ b/app/src/main/java/github/daneren2005/dsub/view/GridSpacingDecoration.java @@ -21,6 +21,11 @@ import android.support.v7.widget.RecyclerView; import android.util.Log; import android.util.TypedValue; import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.LinearLayout; + +import static android.widget.LinearLayout.*; public class GridSpacingDecoration extends RecyclerView.ItemDecoration { private static final String TAG = GridSpacingDecoration.class.getSimpleName(); @@ -56,25 +61,37 @@ public class GridSpacingDecoration extends RecyclerView.ItemDecoration { /* INVALID SPAN */ if (spanCount < 1 || spanSize > 1) return; - outRect.top = halfSpacing; - outRect.bottom = halfSpacing; - outRect.left = halfSpacing; - outRect.right = halfSpacing; + int margins = 0; + if(view instanceof UpdateView) { + View firstChild = ((ViewGroup) view).getChildAt(0); + ViewGroup.LayoutParams layoutParams = firstChild.getLayoutParams(); + if (layoutParams instanceof LinearLayout.LayoutParams) { + margins = ((LinearLayout.LayoutParams) layoutParams).bottomMargin; + } else if (layoutParams instanceof FrameLayout.LayoutParams) { + margins = ((FrameLayout.LayoutParams) layoutParams).bottomMargin; + } + } + int doubleMargins = margins * 2; + + outRect.top = halfSpacing - margins; + outRect.bottom = halfSpacing - margins; + outRect.left = halfSpacing - margins; + outRect.right = halfSpacing - margins; if (isTopEdge(childIndex, spanCount)) { - outRect.top = spacing; + outRect.top = spacing - doubleMargins; } if (isLeftEdge(spanIndex, spanCount)) { - outRect.left = spacing; + outRect.left = spacing - doubleMargins; } if (isRightEdge(spanIndex, spanCount)) { - outRect.right = spacing; + outRect.right = spacing - doubleMargins; } if (isBottomEdge(childIndex, childCount, spanCount)) { - outRect.bottom = spacing; + outRect.bottom = spacing - doubleMargins; } } diff --git a/app/src/main/res/layout/album_cell_item.xml b/app/src/main/res/layout/album_cell_item.xml index b352a5f1..524727a0 100644 --- a/app/src/main/res/layout/album_cell_item.xml +++ b/app/src/main/res/layout/album_cell_item.xml @@ -1,7 +1,8 @@ + android:layout_height="match_parent" + android:layout_margin="2dp"> + android:layout_height="match_parent" + android:layout_margin="2dp"> 20dp 4dp 8dp + 2dp \ No newline at end of file -- cgit v1.2.3