**相信大家 在项目中 会遇到 需要卡片布局的 地方 例如在 列表中 大家公司的ui肯定是做了各种稀奇古怪的 卡片阴影 在Google 自带的 CardView 中 肯定满足不了大家的 日常要求 所以 ShadowLayout来了 使用方法很简单 **
1.添加jitpack库
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
2.添加三方库依赖
implementation 'com.github.lihangleo2:ShadowLayout:3.2.4'
3.直接在布局中引用
<com.lihang.ShadowLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:hl_cornerRadius="18dp"
app:hl_dx="0dp"
app:hl_dy="0dp"
app:hl_leftShow="false"
app:hl_shadowColor="#2a000000"
app:hl_shadowBackColor="#fff"
app:hl_shadowLimit="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="36dp"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="完全圆形圆角"
android:textColor="#000" />
</com.lihang.ShadowLayout>
4.stroke边框的简单使用
<com.lihang.ShadowLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:hl_cornerRadius="10dp"
app:hl_strokeColor="#000">
<TextView
android:layout_width="wrap_content"
android:layout_height="36dp"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="圆角边框"
android:textColor="#000" />
</com.lihang.ShadowLayout>
5.shape selector的简单使用
<com.lihang.ShadowLayout
android:id="@+id/ShadowLayout_shape"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
app:hl_cornerRadius="18dp"
app:hl_cornerRadius_rightTop="0dp"
app:hl_layoutBackground="@mipmap/test_background_false"
app:hl_layoutBackground_true="@mipmap/test_background_true">
<TextView
android:layout_width="wrap_content"
android:layout_height="36dp"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="图片selector"
android:textColor="#fff" />
</com.lihang.ShadowLayout>
当然还有另一种写法
<com.lihang.ShadowLayout
android:id="@+id/ShadowLayout_image"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
app:hl_layoutBackground="@mipmap/game_6_right"
app:hl_layoutBackground_true="@mipmap/game_6_wrong"
app:hl_shapeMode="pressed" />
6.渐变色的简单使用
<com.lihang.ShadowLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:hl_cornerRadius="18dp"
app:hl_startColor="#ff0000"
app:hl_endColor="#0000ff">
<TextView
android:layout_width="160dp"
android:layout_height="40dp"
android:gravity="center"
android:text="渐变色"
android:textColor="#fff" />
</com.lihang.ShadowLayout>
7.水波纹ripple的使用
<com.lihang.ShadowLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:hl_cornerRadius="18dp"
app:hl_shadowColor="#2a000000"
app:hl_shadowLimit="7dp"
app:hl_layoutBackground="#fff"
app:hl_layoutBackground_true="#ff0000"
app:hl_shapeMode="ripple">
<TextView
android:layout_width="160dp"
android:layout_height="40dp"
android:gravity="center"
android:text="水波纹"
/>
</com.lihang.ShadowLayout>
7.绑定textView,伴随文案及颜色变化
<com.lihang.ShadowLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
app:hl_bindTextView="@+id/txt_press"
app:hl_cornerRadius="18dp"
app:hl_layoutBackground="#FF9800"
app:hl_layoutBackground_true="#ff0000"
app:hl_shapeMode="pressed"
app:hl_textColor_true="#fff"
app:hl_text="点我,press样式"
app:hl_text_true="我改变了文案了">
<TextView
android:id="@+id/txt_press"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="点我,press样式"
android:textColor="#000" />
</com.lihang.ShadowLayout>
在这里有一些属性跟大家说一下
app:hl_cornerRadius="18dp" 阴影圆角属性(同时如果设置了背景填充色也是背景圆角)
//阴影扩散程度
app:hl_shadowLimit="5dp" 阴影的扩散区域
//阴影布局背景颜色值
app:hl_shadowBackColor="#fff" 阴影布局背景填充色,圆角属性即是阴影圆角
//阴影的颜色
app:hl_shadowColor="#2a000000" 阴影的颜色可以随便改变,透明度的改变可以改变阴影的清晰程度
// x轴的偏移量
app:hl_dx="0dp" 也可以理解为左右偏移量
//y轴的偏移量
app:hl_dy="0dp" 也可以理解为上下的偏移量
// 阴影的4边可见不可见(与偏移量无关)
app:hl_leftShow="false" 左边的阴影不可见,其他3边保持不变
最后献上两张图片 大家可以看下效果
然后说下这个三方库的作者 是我从wanandroid 中看到的 这个是原作者的项目地址 、
https://github.com/lihangleo2/ShadowLayout
https://blog.csdn.net/leol_2/article/details/109517273