Skip to content

xiaofeidev/ShadowView

Repository files navigation

ShadowView

实现简单的 Android 原生阴影控件。

Gradle 依赖:

implementation 'com.github.xiaofeidev:shadow:1.0.0'

界面预览:

实现阴影效果的原理主要是在原 View 的底下绘制一个阴影(图层)。具体阴影的形状和效果需要客户端自己定义,且必须要由客户端自己定义出来。可定义属性包括阴影的形状,模糊半径,颜色,X 轴偏移量,Y 轴偏移量等。阴影的形状以一个圆角矩形或正圆形为主,注意阴影的形状不可太复杂,你只能将阴影定义成上图中那样简单规则的形状。

ShadowImageView 为本项目核心控件,另还提供了一个提供阴影效果的 ViewGroup——ShadowFrameLayout

控件属性:

属性名 解释
shadow_corner_radius 矩形阴影图层的圆角半径,尺寸值
shadow_corner_top_left_radius 阴影图层左上圆角半径,尺寸值
shadow_corner_top_right_radius 阴影图层右上圆角半径,尺寸值
shadow_corner_bottom_left_radius 阴影图层左下圆角半径,尺寸值
shadow_corner_bottom_right_radius 阴影图层右下圆角半径,尺寸值
shadow_blur_radius 阴影的模糊半径,尺寸值
shadow_offset_x 阴影的 x 轴偏移量,尺寸值
shadow_offset_y 阴影的 y 轴偏移量,尺寸值
shadow_color 阴影颜色,颜色值

简单示例:

<com.github.xiaofeidev.shadow.ShadowImageView
    android:id="@+id/img2"
    android:layout_width="150dp"
    android:layout_height="150dp"
    app:layout_constraintStart_toEndOf="@id/img1"
    app:layout_constraintTop_toTopOf="parent"
    android:scaleType="fitXY"
    android:adjustViewBounds="true"
    app:srcCompat="@drawable/round_red"
    app:shadow_corner_radius="20dp"
    app:shadow_blur_radius="20dp"
    app:shadow_color="@android:color/black"/>

效果:

Releases

No releases published

Packages

No packages published