最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android自定義控件打造絢麗平行空間引導(dǎo)頁(yè)

 更新時(shí)間:2021年04月22日 09:42:41   作者:難不難太難了  
這篇文章主要為大家詳細(xì)介紹了Android自定義控件打造絢麗平行空間引導(dǎo)頁(yè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Android自定義控件打造平行空間引導(dǎo)頁(yè)的具體代碼,供大家參考,具體內(nèi)容如下

先上圖,動(dòng)圖太大傳不上來(lái),在項(xiàng)目中有動(dòng)圖

點(diǎn)擊查看動(dòng)圖

首先解釋下工程的主要部分。

首先谷歌的百分比布局做了部分修改,因?yàn)槲以O(shè)置的寬高都是相對(duì)于屏幕的寬度,而谷歌的百分比布局不能實(shí)現(xiàn),只需要修改一部分代碼就可以實(shí)現(xiàn)。下面貼出修改的部分代碼

public static class PercentLayoutInfo 
  { 
 
    private enum BASEMODE 
    { 
 
      BASE_WIDTH, BASE_HEIGHT, BASE_SCREEN_WIDTH, BASE_SCREEN_HEIGHT; 
 
      /** 
       * width_parent 
       */ 
      public static final String PERCENT = "%"; 
      /** 
       * width_parent 
       */ 
      public static final String W = "w"; 
      /** 
       * height_parent 
       */ 
      public static final String H = "h"; 
      /** 
       * width_screen 
       */ 
      public static final String SW = "sw"; 
      /** 
       * height_screen 
       */ 
      public static final String SH = "sh"; 
    } 
.............. 

首先我修改了寬高標(biāo)識(shí)的基類(lèi),增加了一些識(shí)別字段,當(dāng)然僅增加這些還不能實(shí)現(xiàn),還要在識(shí)別字段后返回相應(yīng)的標(biāo)準(zhǔn)

PercentLayoutInfo.PercentVal percentVal = new PercentLayoutInfo.PercentVal(); 
    percentVal.percent = percent; 
    if (percentStr.endsWith(PercentLayoutInfo.BASEMODE.SW)) 
    { 
      percentVal.basemode = PercentLayoutInfo.BASEMODE.BASE_SCREEN_WIDTH; 
    } else if (percentStr.endsWith(PercentLayoutInfo.BASEMODE.SH)) 
    { 
      percentVal.basemode = PercentLayoutInfo.BASEMODE.BASE_SCREEN_HEIGHT; 
    } else if (percentStr.endsWith(PercentLayoutInfo.BASEMODE.PERCENT)) 
    { 
      if (isOnWidth) 
      { 
        percentVal.basemode = PercentLayoutInfo.BASEMODE.BASE_WIDTH; 
      } else 
      { 
        percentVal.basemode = PercentLayoutInfo.BASEMODE.BASE_HEIGHT; 
      } 
    } else if (percentStr.endsWith(PercentLayoutInfo.BASEMODE.W)) 
    { 
      percentVal.basemode = PercentLayoutInfo.BASEMODE.BASE_WIDTH; 
    } else if (percentStr.endsWith(PercentLayoutInfo.BASEMODE.H)) 
    { 
      percentVal.basemode = PercentLayoutInfo.BASEMODE.BASE_HEIGHT; 
    } else 
    { 
      throw new IllegalArgumentException("the " + percentStr + " must be endWith [%|w|h|sw|sh]"); 
    } 
 
    return percentVal; 
  } 

這兩段代碼就能幫助我們實(shí)現(xiàn)設(shè)置寬高可以相對(duì)于屏幕的寬和高,代碼不太復(fù)雜,后面會(huì)貼出項(xiàng)目的完整代碼。
工程中使用了transformPage(View view,float position)首先我介紹一下這個(gè)函數(shù),這個(gè)函數(shù)在布局滑動(dòng)時(shí)會(huì)觸發(fā)這個(gè)函數(shù),position代表每個(gè)viewpager中每個(gè)view布局距離屏幕左邊的距離,setOffScreenPageLimit(int number)可以設(shè)置viewpage緩沖頁(yè)面,當(dāng)前頁(yè)面左右兩邊能緩沖幾個(gè)頁(yè)面,比如number=2,代表當(dāng)前頁(yè)面左右兩邊最多可以緩沖兩個(gè),這個(gè)number數(shù)量和transformPage中的view有聯(lián)系。

首先看一張圖

每次移動(dòng)view都會(huì)調(diào)用transform這個(gè)函數(shù),id0,1,2代表三個(gè)頁(yè)面,position代表三個(gè)頁(yè)面距離屏幕左邊的距離。
其他的也就是用一些屬性動(dòng)畫(huà),背景顏色的漸變用了插值器,看完代碼就會(huì)明白
項(xiàng)目地址
有不懂的可以隨時(shí)提問(wèn)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android 解決監(jiān)聽(tīng)home鍵的幾種方法

    Android 解決監(jiān)聽(tīng)home鍵的幾種方法

    這篇文章主要介紹了Android 解決監(jiān)聽(tīng)home鍵的幾種方法的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Android Dialog仿ios9中UIAlertController控件

    Android Dialog仿ios9中UIAlertController控件

    這篇文章主要為大家詳細(xì)介紹了Android Dialog仿ios9中UIAlertController控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • android中的adb命令學(xué)習(xí)

    android中的adb命令學(xué)習(xí)

    這篇文章介紹了android中的adb命令,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • 最新評(píng)論

    旬阳县| 通江县| 福贡县| 驻马店市| 定结县| 榆中县| 温泉县| 太谷县| 榆林市| 马龙县| 牡丹江市| 玉树县| 广昌县| 抚顺市| 新平| 井冈山市| 琼结县| 平定县| 九江市| 濮阳市| 饶平县| 沐川县| 德格县| 蓝田县| 肃宁县| 鄂托克旗| 广东省| 新余市| 延边| 景洪市| 长沙市| 汶上县| 万源市| 辽阳县| 山阳县| 锡林浩特市| 琼海市| 临海市| 堆龙德庆县| 师宗县| 怀仁县|