• <center id="sm46c"></center>
  • <dfn id="sm46c"></dfn>
  • <strike id="sm46c"></strike>
  • <cite id="sm46c"><source id="sm46c"></source></cite>
    • <strike id="sm46c"><source id="sm46c"></source></strike>
      <option id="sm46c"></option>
      国产精品天天看天天狠,女高中生强奷系列在线播放,久久无码免费的a毛片大全,国产日韩综合av在线,亚洲国产中文综合专区在,特殊重囗味sm在线观看无码,中文字幕一区二区三区四区在线,无码任你躁久久久久久老妇蜜桃

      Android5.0以后,materialDesign風格的加陰影和裁剪效果

      2018-10-17    seo達人

      如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

      5.0以后,materialDesign風格,出現了立體這種概念,高光,陰影,也就是Z軸,凸顯層次;同時,裁剪view也變得方便簡單了很多。
      1,先說說陰影的實現。
      方案1:在xml中設置 
      xml中設置有兩個方式,android:elevation="2dp" 
      android:translationZ="2dp"這兩句代碼是可以同時并存的,而且是疊加的效果;當然只使用其中一個屬性進行z軸的陰影設置也是OK的。

      方案2:在代碼中設置 
      (下面說這個實現方式,其實就是輪廓的實現)

      設置陰影,有一個需要注意的地方:
      ①:view的大小要比它的父布局小,才會有陰影效果,如果相同大小,是看不到陰影效果的; 
      ②:給圖片設置陰影的時候,如果這種圖片的background屬性是shape,那直接通過xml設置陰影是OK的,但是,如果是一張png或者其他格式的圖片,直接通過xml設置android:elevation="2dp" 
      android:translationZ="2dp"陰影是看不到效果的,得通過其他代碼設置才行。。。**

      2,view的輪廓,輪廓其實也是陰影
      默認情況下,所有的view都是矩形的,雖然可以給view設置背景圓形的圖片,即可以在界面顯示出圓形的內容,但是view的大小實際上依然是矩形,并且設置的圖片實際上也是矩形的,只是圓形以外的區域是透明色。 
      如果根據view大小來生成對應的陰影,就會出現很奇怪的效果,(一個看起來圓形的view展示出的確實一個矩形的陰影)我了解決這個問題,view增加了一個新的描述來指明內容顯示的形狀,這就是 輪廓

      輪廓的實現
      ①通過shape設置的背景,view會自動根據shape的形狀進行輪廓判定,
      ②通過color設置的背景,view默認其輪廓和view的大小一樣。
      ③但是通過圖片進行背景設置,view則無法獲知輪廓的形狀,這個時候就需要手動進行指定了。
      1
      2
      3
      一:在xml中可以通過android:outlineProvider來指定輪廓的判定方式: 
      1,none即使設置了Z屬性,也不會顯示陰影 
      2,background會按照背景來設置陰影形狀 
      3,bounds會按照view的大小來描繪陰影

      **對于①和②這種情況,也是可以通過設置`android:outlineProvider`
      來改變陰影的形狀以及輪廓外觀的。**

      對于③這種背景是一張png或者其他格式的圖片的情況,
      `android:outlineProvider=“background”`
      是沒有效果的,屬性設置成`android:outlineProvider=bounds`
      雖然也是有效果的,但是陰影輪廓是一個方形的輪廓,
      并不是我們想要的效果了。

      不設置`android:outlineProvider`屬性就更沒有效果了。
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      對于這種使用了png圖片作為背景的view加陰影輪廓的時候情況解決辦法也非常簡單,解決辦法就是:
      就通過Java代碼設置,也就是說,一個圓形的png圖(我們知道,看起來是圓形的,
      但是它其實還是方形的圖片,只是圓形之外的區域是透明不可見的),
       通過Java代碼設置輪廓,就會顯示出圓形的陰影輪廓了。
      1
      2
      3
      具體實現,繼續看: 
      二:在代碼中,課通過setOutlineProvider來指定一個view的輪廓。 
      對于③這種情況在代碼中設置輪廓才會有效果。

      TextView textView= findViewById(R.id.tv);
      ViewOutlineProvider viewOutlineProvider=new ViewOutlineProvider() {
                  @Override
                  public void getOutline(View view, Outline outline) {
               //x,y軸表示位置,后兩個參數表示長,寬 
                     outline.setOval(0,0,textView.getWidth(),textView.getHeight());
                  }
              };
      textView.setOutlineProvider(viewOutlineProvider);
      1
      2
      3
      4
      5
      6
      7
      8
      9
      強調:
      如果采用圓形圖片作為背景,即使在xml布局中指定android:outlineProvider=“background”,也不會顯示陰影,設置為android:outlineProvider=bounds,雖然也有效果,但是效果很差,所以一般都是通過代碼來指定輪廓顯示。

      1,一個shape圓形作為背景,設置陰影,設置android:outlineProvider的4種屬性的效果:


      2,一個圓形png作為背景,設置陰影,設置android:outlineProvider的4種屬性的效果:


      3,一個png作為背景,設置陰影,通過代碼設置的效果:


      3,view的裁剪
      裁剪,默認的ImageView是矩形的,很多時候,需要的是圓角的ImageView或者圓形的ImageView,這就需要裁剪view了。

      實現,裁剪圓形:

      final TextView textView= findViewById(R.id.tv);

      ViewOutlineProvider viewOutlineProvider=new ViewOutlineProvider() {
                  @Override
                  public void getOutline(View view, Outline outline) {
                      //設置圓形oval
                      outline.setOval(0,0,textView.getWidth(),textView.getHeight());
                  }
              };
      //設置裁剪
      textView.setClipToOutline(true);
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      實現,裁剪圓角矩形:

      final TextView textView= findViewById(R.id.tv);

      ViewOutlineProvider viewOutlineProvider=new ViewOutlineProvider() {
                  @Override
                  public void getOutline(View view, Outline outline) {
                      //設置圓角矩形
                     outline.setRoundRect(0,0,view.getWidth(),view.getHeight(),25);
                  }
              };
      textView.setOutlineProvider(viewOutlineProvider);
      //設置裁剪
      藍藍設計www.li-bodun.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

      日歷

      鏈接

      個人資料

      藍藍設計的小編 http://www.li-bodun.cn

      存檔

      主站蜘蛛池模板: 亚洲国产综合精品2020 | 亚洲九九视频| 欧美日产国产精选| 日韩精品福利视频在线观看| 亚洲熟妇少妇任你躁在线观看无码| 国产色在线 | 日韩| 日本一卡2卡3卡4卡5卡精品视频| 成人无码午夜在线观看| 新巴尔虎左旗| 国产成人午夜福利在线播放| 成人一区二区免费视频| 午夜美女裸体福利视频| 免费午夜无码视频在线观看| 久久人人妻人人爽人人爽| 精品福利一区二区免费视频| 成人精品亚洲| 日韩精品一区二区三区免费 | 亚洲精品久久久久久中文| 久青草影院在线观看国产| 国产精品.com| 免费视频爱爱太爽了| 四虎永久免费精品视频| 夜夜春亚洲嫩草影院| 久久水蜜桃亚洲av无码精品麻豆| 99久久精品国产成人综合| 中出人妻中文字幕无码| 日本国产制服丝袜一区| 精品国产午夜福利理论片| 久久人人爽人人爽人人片ⅴ| 亚洲最大成人在线播放| 宅宅午夜无码一区二区三区| 亚洲国产精品一区第二页| 欧美丰满少妇xxxx性| 伊人久久大香线蕉av不变影院| 国产真正老熟女无套内射| 亚洲欧美中文日韩V在线观看| 免费无码在线播放av| 妺妺窝人体色www聚色窝| 国产精品黄色精品黄色大片| 丁香五月激情图片| 亚洲最大的熟女水蜜桃AV网站|