引入
- github:https://github.com/CNAD666/TaoLibrary
- 在gradle(Module:app)里添加配置:
implementation 'com.ytman:TaoLibrary:1.1.50'
自定义view
- 写到按钮的时候,经常遇到长方形按钮,角度需要不同的弧度;需要边框;需要点击的按压效果;渐变色,渐变色按压效果啥的;圆形头像,弧度图片什么的。
- 每每这时候,就去写个一堆xml,放在drawerable里面,然后再去调用,写的真是方的一批,有时xml写多了,写的都搞不清那些xml实现了啥场景,整的是头皮发麻。
- 痛定思痛,自定义个view,起码能够解决写xml大部分痛点,反正我肝出了这个RoundView后,几乎就很少用xml去实现效果了,用在多个公司项目里,测试并没有在这个控件上给我提出什么bug,稳,放心食用。
RoundView
-
举例(RoundView是继承RelativeLayout,可以使用RelativeLayout的所有参数)
<com.taolibrary.widget.view.round.RoundView android:id="@+id/rdv_certify_submit" android:layout_width="match_parent" android:layout_height="50dp" android:layout_margin="50dp" app:roundAll="5dp" app:isClickEffect="true" app:backgroudColor="#34a7f2" app:colorPress="#008FED"> <!--被包裹的布局,可以随便用什么,用ImageView就能被切割成弧形或者圆形头像 --> </com.taolibrary.widget.view.round.RoundView>
-
所有属性
参数 含义 backgroudColor 控件的背景色 colorPress 按压颜色(需要设置isClickEffect属性) angle 设置渐变方向(left:从左到右渐变,top:从上到下渐变,right:从右到左渐变,bottom:从下到上渐变) colorStart 渐变开始颜色 colorEnd 渐变结束颜色 colorPressStart 按压渐变开始颜色 colorPressEnd 按压渐变结束颜色 isClickEffect 是否开启按压效果,true:开启 false:不开启 默认false (这个属性比较重要,如果需要按钮效果,记得设置为true) isCircle 是否设置为圆, true:设置为圆形 false:不设置 默认false isClipBg 是否切割背景(前景色也会被切割,如果非要使用涟漪效果,想涟漪效果只在边界内,可以开启该属性。这个地方试了很多方式,自定义Drawable什么的,发现在Drawable里还是没有设置单边弧度的方法,目前只发现切割的方法), true:切割 false:不切割 默认false 切割背景会存在锯齿的情况 roundAll 设置四个角度,设置此值后,单设其它各边无效(这个属性也比较重要,举个例子:如果是长方形,设置的值超过宽,宽的俩边就是半圆;如果是正方形,设置的值超过边长,则就是圆了) roundTopLeft 设置顶部左边弧度 roundTopRight 设置顶部右边弧度 roundBottomLeft 设置底部左边弧度 roundBottomRight 设置底部右边弧度 stroke_width 添加边框宽度 stroke_color 添加边框颜色 text 添加文字内容(这个是绘制个文字,如果写按钮的时候,有文字,懒得写TextView,可以用这个属性,写写简单的文字) textSize 添加文字大小 textColor 添加文字颜色 -
效果图
- 俩倍速演示,可能是转gif原因,未开启切个好像还有点毛边;但是明确的说,不开启切割,是没有毛边的。
- 点击的涟漪效果,使用的前景色自带的涟漪效果,因为用的是前景色,绘制的view没办法去改变其形状,导致涟漪效果越界;eg:这个在豆瓣app,刚安装的时候,弹出的授权,同意拒绝按钮,点击效果也越过了按钮的圆角。试了很多办法,都没有成功,最后只能用切割视图,保持涟漪效果不越界,但是切割存在毛边;没辙,然后我就在该view中还内置了一种设置点击时颜色的属性,曲线救国,日常使用内置的点击颜色,完全没问题,小米的通知栏,点击也只是整个item微微变灰,思路相似。
CalendarList
-
这个view是一个垂直滑动的日历view,日历的定制型太多变了,大家想要什么,只能去代码里面去改了
-
View路径
-
效果图
SwitchView
-
这个开关按钮太常用了,搬了一个过来,微调了下接口调用方式,上面那俩个view,都是一行行代码苟出来的。
-
基本参数
参数 description hasShadow 是否显示按钮阴影 primaryColor 开启状态背景色 primaryColorDark 开启状态按钮描边色 offColor 关闭状态描边色 offColorDark 关闭状态按钮描边色 shadowColor 按钮阴影色 ratioAspect 按钮宽高形状比率(0,1] isOpened 初始化默认状态 barColor 按钮颜色 bgColor 背景色 -
使用
<com.taolibrary.widget.view.switchview.SwitchView android:id="@+id/sw_circle" android:layout_width="wrap_content" android:layout_height="wrap_content" app:ratioAspect="0.6" app:primaryColor="#34a7f2" app:primaryColorDark="#E0E0E0"/>