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);


      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章