ShadowLayout

Introduction: 阴影布局,不管你是什么控件,放进阴影布局即刻享受你想要的阴影
More: Author   ReportBugs   
Tags:

  • 支持定制化阴影
  • 支持随意更改阴影颜色值
  • 支持 x,y 轴阴影偏移
  • 可随意更改阴影扩散区域
  • 支持阴影圆角属性
  • 支持单边或多边不显示阴影
  • 支持 ShadowLayout 背景填充颜色,背景圆角随阴影圆角改变
  • 控件支持动态设置 shape 和 selector(项目里再也不用画 shape 了)

2.1.6 更新功能及 ShadowLayout 成长历程

Shadow 成长历程


最近有人反应内存情况,请看分析

效果展示(截图分辨率模糊,真机运行效果赶超 CardView)

基础功能展示 各属性展示 随意更改颜色
增加动态设置 shape,selector 功能


扫描二维体验效果(下载密码是:123456)


添加依赖

  • 项目 build.gradle 添加如下
    allprojects {
         repositories {
             maven { url 'https://jitpack.io' }
         }
     }
    
  • app build.gradle 添加如下
    dependencies {
             implementation 'com.github.lihangleo2:ShadowLayout:2.1.6'
     }
    


使用(这里只放了几个基本属性,全部属性请看下方介绍)

      <com.lihang.ShadowLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:hl_cornerRadius="18dp"
        app:hl_shadowColor="#2aff0000"
    app:hl_shadowBackColor="#fff"
        app:hl_shadowLimit="5dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="36dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
        android:gravity="center"
            android:text="定制化你的阴影"
            android:textColor="#000" />

    </com.lihang.ShadowLayout>


自定义属性

1、圆角属性 app:hl_cornerRadius="18dp"

  • 阴影圆角属性(同时如果设置了背景填充色也是背景圆角)

    2、阴影扩散程度 app:hl_shadowLimit="5dp"

  • 阴影的扩散区域

    3、阴影布局背景颜色值 app:hl_shadowBackColor="#fff"

  • 阴影布局背景填充色,同时注意圆角属性即是阴影圆角

    4、阴影的颜色 app:hl_shadowColor="#2a000000"

  • 阴影的颜色可以随便改变,透明度的改变可以改变阴影的清晰程度,如果未设置透明度,则默认透明度为 16%

    5、x 轴的偏移量 app:hl_dx="0dp"

  • 也可以理解为左右偏移量

    6、y 轴的偏移量 app:hl_dy="0dp"

  • 也可以理解为上下的偏移量

    7、阴影的 4 边可见不可见 app:hl_leftShow="false"

  • 左边的阴影不可见,其他 3 边保持不变

    8、动态设置 shape,selector。pressed 和 selected 背景颜色值 app:hl_shadowBackColorClicked="#ff0000"

  • 不点击状态下,显示 hl_shadowBackColor 颜色值。点击时切换成 hl_shadowBackColorClicked。松开手指后恢复正常;如果是 setSelect(true)则显示 hl_shadowBackColorClicked,false 显示 hl_shadowBackColor

    9、设置 selector 的样式 app:hl_selectorMode="selected"

  • selected 表示只支持 selected 样式;pressed 表示只支持点击状态;selected|pressed 则表示 2 者都支持

    10、是否使用阴影 app:hl_isShowShadow="false"

  • 这个属性是因为有些同学只想使用 shape 和 selector 功能,那么就不使用阴影就好了


关于作者。

Android 工作多年了,一直向往大厂。在前进的道路上是孤独的。如果你在学习的路上也感觉孤独,请和我一起。让我们在学习道路上少些孤独


Licenses

MIT License

Copyright (c) 2019 leo

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea