Android-自定义view(可设各角度弧边,渐变,边框,按压效果)

引入

  • 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的所有参数)

    
        	
    
    
  • 所有属性

    参数 含义
    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

  • 参考:https://github.com/iielse/switchbutton

  • 这个开关按钮太常用了,搬了一个过来,微调了下接口调用方式,上面那俩个view,都是一行行代码苟出来的。

  • 基本参数

    参数 description
    hasShadow 是否显示按钮阴影
    primaryColor 开启状态背景色
    primaryColorDark 开启状态按钮描边色
    offColor 关闭状态描边色
    offColorDark 关闭状态按钮描边色
    shadowColor 按钮阴影色
    ratioAspect 按钮宽高形状比率(0,1]
    isOpened 初始化默认状态
    barColor 按钮颜色
    bgColor 背景色
  • 使用

    
    

你可能感兴趣的:(Android)