github(一)android阴影效果SuperShadow源码分析

   前言
        SuperShadow是一款在安卓端控件增加阴影的一款开源项目,自己在找了了代码之后觉得架构不错 ,就分析番  
        ,好做个标记,也为以后自己设计架构做个参考和标记。  
             

  技术亮点
        一、@IntDef的使用,可以用来实现限制传值的范围,如果不是这个范围则报错  

        二、定义了IShadowRenderer渲染器接口,渲染分为四个部步骤, //给控件增加渲染效果 void   
          makeShadow(View view); //移除渲染效果 void removeShadow(); //隐藏渲染效果 void   
          hideShadow(); //显示渲染效果 void showShadow(); 

        三、SuperShadow提供了对外的使用,并没有继承view方法
 架构分析
 compone接口
      定义了一个componet组件接口,用来定义一些用来可组合的组件
      view里的自定义控件是用来实现WrapRenderer的,实现了包装式阴影
      ShadowAttr定义了渲染的属性,
 draw和wrap接口
     这两个接口实现了两个渲染器,一个是draw渲染器,一个是wrap渲染器,draw添加阴影背景,  
     同时可以设置圆角,而wrap是包装的形式添加阴影

 SuperShadow类
    这是一个对外提供接口的类,这个类是对定义的组件和渲染器的使用,来完成阴影效果的实现

 使用
 

          superWrapShadowDirectionExample1 = new SuperShadow.Builder()
                            .setContext(this)
                            //设置方向
                            .setDirection(ShadowDirection.LEFT_TOP)
                            .setShadowSize(dip2Px(8))
                            .setCorner(dip2Px(4))
                            .setBaseShadowColor(Color.parseColor("#99cc00"))
                            //设置渲染器
                            .setImpl(SuperShadow.WRAP)
                            .action(wrapShadowLeftTopExample);


      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值