From 797c614241567a7e05cd14b397ec1b3f3c46ae39 Mon Sep 17 00:00:00 2001 From: lgr <344760694@qq.com> Date: Fri, 27 Jul 2018 09:51:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BF=AE=E6=94=B9=E4=B8=8A?= =?UTF-8?q?=E4=B8=8B=E9=98=B4=E5=BD=B1=E6=AF=94=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加修改上下阴影比例 --- app/src/main/res/layout/activity_main.xml | 4 +++ .../wmzx/cardviewlibrary/library/CardView.kt | 9 ++++-- .../library/CardViewApi17Impl.kt | 4 +-- .../library/CardViewApi21Impl.kt | 12 +++++--- .../library/CardViewBaseImpl.java | 16 +++++----- .../cardviewlibrary/library/CardViewImpl.kt | 5 ++-- .../library/RoundRectDrawableWithShadow.kt | 30 ++++++++++++++----- cardviewlibrary/src/main/res/values/attrs.xml | 10 +++++-- 8 files changed, 60 insertions(+), 30 deletions(-) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index be69e16..e9925c3 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,6 +4,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" + android:background="@color/white" > 1f){ + mTopDelta=1f + }else if(mTopDelta>-1f&&mTopDelta<0f){ + mTopDelta=-1f + } + canvas.translate(0f, mRawShadowSize / 2*mTopDelta) drawShadow(canvas) - canvas.translate(0f, -mRawShadowSize / 2) + canvas.translate(0f, -mRawShadowSize / 2*mTopDelta) sRoundRectHelper!!.drawRoundRect(canvas, mCardBounds, mCornerRadius, mPaint) } + /** + * 绘制四个角阴影 + */ private fun drawShadow(canvas: Canvas) { val edgeShadowTop = -mCornerRadius - mShadowSize val inset = mCornerRadius + mInsetShadow.toFloat() + mRawShadowSize / 2 val drawHorizontalEdges = mCardBounds.width() - 2 * inset > 0 val drawVerticalEdges = mCardBounds.height() - 2 * inset > 0 - // LT + // LT 左上 var saved = canvas.save() canvas.translate(mCardBounds.left + inset, mCardBounds.top + inset) canvas.drawPath(mCornerShadowPath!!, mCornerShadowPaint!!) @@ -245,7 +259,7 @@ internal class RoundRectDrawableWithShadow : Drawable { mEdgeShadowPaint!!) } canvas.restoreToCount(saved) - // RB + // RB 右下 saved = canvas.save() canvas.translate(mCardBounds.right - inset, mCardBounds.bottom - inset) canvas.rotate(180f) @@ -256,7 +270,7 @@ internal class RoundRectDrawableWithShadow : Drawable { mEdgeShadowPaint!!) } canvas.restoreToCount(saved) - // LB + // LB 左下 saved = canvas.save() canvas.translate(mCardBounds.left + inset, mCardBounds.bottom - inset) canvas.rotate(270f) @@ -266,7 +280,7 @@ internal class RoundRectDrawableWithShadow : Drawable { mCardBounds.height() - 2 * inset, -mCornerRadius, mEdgeShadowPaint!!) } canvas.restoreToCount(saved) - // RT + // RT 右上 saved = canvas.save() canvas.translate(mCardBounds.right - inset, mCardBounds.top + inset) canvas.rotate(90f) diff --git a/cardviewlibrary/src/main/res/values/attrs.xml b/cardviewlibrary/src/main/res/values/attrs.xml index d66192e..9321474 100644 --- a/cardviewlibrary/src/main/res/values/attrs.xml +++ b/cardviewlibrary/src/main/res/values/attrs.xml @@ -1,12 +1,16 @@ - + + + + - + - + +