YCExpandView
- 01.该库介绍
- 02.万能伸展折叠控件
- 03.自定义小红点
- 04.多种阴影效果实践
- 05.自定义圆角控件
01.该库介绍
02.万能伸展折叠控件
- 伸展折叠控件介绍
- 自定义折叠和展开布局,在不用改变原控件的基础上,就可以实现折叠展开功能,入侵性极低。
- 主要的思路是,设置一个折叠时的布局高度,设置一个内容展开时的高度,然后利用属性动画去动态改变布局的高度。
- 可以设置折叠和展开的监听事件,方便开发者拓展其他需求。可以设置动画的时间。
- 可以支持支持常见的文本折叠,流失布局标签折叠,或者RecyclerView折叠等功能。十分方便,思路也比较容易理解,代码不超过300行……
- 如何引用
implementation 'com.github.yangchong211.YCWidgetLib:ExpandLib:1.0.5'
- 具体使用可看:
03.自定义小红点
- 自定义小红点介绍
- 自定义红点控件,不用修改之前的代码,完全解耦,既可以设置红点数字控件,使用十分方便。
- 网上看到有些案例是继承View,然后去测量和绘制红点的相关操作,此案例则不需要这样,继承TextView也可以完成设置红点功能。
- 可以支持设置在TextView,Button,LinearLayout,RelativeLayout,TabLayout等等控件上……
- 大概的原理是:继承TextView,然后设置LayoutParams,设置内容,设置Background等等属性,然后在通过addView添加到父控件中。
- 如何引用
implementation 'com.github.yangchong211.YCWidgetLib:RedDotView:1.0.5'
- 具体使用可看:
04.多种阴影效果实践
- 阴影效果有哪些实现方式
- 第一种:使用CardView,但是不能设置阴影颜色
- 第二种:采用shape叠加,存在后期UI效果不便优化
- 第三种:UI切图
- 第四种:自定义View
- 方案对比
- 第一个方案的CardView渐变色和阴影效果很难控制,只能支持线性或者环装形式渐变,这种不满足需要,因为阴影本身是一个四周一层很淡的颜色包围,在一个矩形框的层面上颜色大概一致,而且这个CardView有很多局限性,比如不能修改阴影的颜色,不能修改阴影的深浅。所以这个思路无法实现这个需求。
- 第二个采用shape叠加,可以实现阴影效果,但是影响UI,且阴影部分是占像素的,而且不灵活。
- 第三个方案询问了一下ui。他们给出的结果是如果使用切图的话那标注的话很难标,身为一个优秀的设计师大多对像素点都和敏感,界面上的像素点有一点不协调那都是无法容忍的。
- 第四种方案采用api实现阴影效果,支持多种自定义效果,方便调用,目前来说应该比较友好
- 如何引用
implementation 'com.github.yangchong211.YCWidgetLib:ShadowConfig:1.0.5' implementation 'com.github.yangchong211.YCWidgetLib:CardViewLib:1.0.5'
- 具体使用可看:
05.自定义圆角控件
- 自定义小红点介绍
- LinearLayout、RelativeLayout、FrameLayout、ConstraintLayout支持圆角。支持边框,可使用Color的Selector
- 如何引用
implementation 'com.github.yangchong211.YCWidgetLib:RoundCorners:1.0.5'
- 具体使用可看: