GithubHelp home page GithubHelp logo

xiaofeidev / shadowview Goto Github PK

View Code? Open in Web Editor NEW
9.0 1.0 0.0 286 KB

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

License: Apache License 2.0

Kotlin 8.64% Java 91.36%
shadow android-library widget widgets shadow-view widget-library

shadowview's Introduction

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"/>

效果:

shadowview's People

Contributors

xiaofeidev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.