欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android樣式的開發(fā):layer-list實(shí)例詳解

 更新時(shí)間:2016年09月12日 14:51:44   投稿:lqh  
本文主要介紹Android樣式開發(fā)layer-list,這里整理了詳細(xì)的資料,及簡單示例代碼有興趣的小伙伴可以參考下

上圖Tab的背景效果,和帶陰影的圓角矩形,是怎么實(shí)現(xiàn)的呢?大部分的人會(huì)讓美工切圖,用點(diǎn)九圖做背景。但是,如果只提供一張圖,會(huì)怎么樣呢?比如,中間的Tab背景紅色底線的像素高度為4px,那么,在mdpi設(shè)備上顯示會(huì)符合預(yù)期,在hdpi設(shè)備上顯示時(shí)會(huì)細(xì)了一點(diǎn)點(diǎn),在xhdpi設(shè)備上顯示時(shí)會(huì)再細(xì)一點(diǎn),在xxhdpi上顯示時(shí)又細(xì)了,在xxxhdpi上顯示時(shí)則更細(xì)了。因?yàn)樵趚xxhdpi上,1dp=4px,所以,4px的圖,在xxxhdpi設(shè)備上顯示時(shí),就只剩下1dp了。所以,為了適配好各種分辨率,必須提供相應(yīng)的多套圖片。如果去查看android的res源碼資源,也會(huì)發(fā)現(xiàn),像這種Tab的背景點(diǎn)九圖,也根據(jù)不同分辨率尺寸提供了不同尺寸的點(diǎn)九圖片。

但是,在這個(gè)demo里,都沒有用到任何實(shí)際的圖片資源,都是用shape、selector,以及本篇要講解的layer-list完成的。

使用layer-list可以將多個(gè)drawable按照順序?qū)盈B在一起顯示,像上圖中的Tab,是由一個(gè)紅色的層加一個(gè)白色的層疊在一起顯示的結(jié)果,陰影的圓角矩形則是由一個(gè)灰色的圓角矩形疊加上一個(gè)白色的圓角矩形。先看下代碼吧,以下是Tab背景的代碼:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <!-- 第一種加載方式 -->
  <!--<item android:drawable="@drawable/bg_tab_selected" android:state_checked="true" />-->
  <!-- 第二種加載方式 -->
  <item android:state_checked="true">
    <layer-list>
      <!-- 紅色背景 -->
      <item>
        <color android:color="#E4007F" />
      </item>
      <!-- 白色背景 -->
      <item android:bottom="4dp" android:drawable="@android:color/white" />
    </layer-list>
  </item>
  <item>
    <layer-list>
      <!-- 紅色背景 -->
      <item>
        <color android:color="#E4007F" />
      </item>
      <!-- 白色背景 -->
      <item android:bottom="1dp" android:drawable="@android:color/white" />
    </layer-list>
  </item>
</selector>

以下是帶陰影的圓角矩形:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <!-- 灰色陰影 -->
  <item
    android:left="2dp"
    android:top="4dp">
    <shape>
      <solid android:color="@android:color/darker_gray" />
      <corners android:radius="10dp" />
    </shape>
  </item>
  <!-- 白色前景 -->
  <item
    android:bottom="4dp"
    android:right="2dp">
    <shape>
      <solid android:color="#FFFFFF" />
      <corners android:radius="10dp" />
    </shape>
  </item>
</layer-list>

從上面的示例代碼可以看到,layer-list可以作為根節(jié)點(diǎn),也可以作為selector中item的子節(jié)點(diǎn)。layer-list可以添加多個(gè)item子節(jié)點(diǎn),每個(gè)item子節(jié)點(diǎn)對(duì)應(yīng)一個(gè)drawable資源,按照item從上到下的順序疊加在一起,再通過設(shè)置每個(gè)item的偏移量就可以看到陰影等效果了。layer-list的item可以通過下面四個(gè)屬性設(shè)置偏移量:

  1. android:top 頂部的偏移量
  2. android:bottom 底部的偏移量
  3. android:left 左邊的偏移量
  4. android:right 右邊的偏移量

這四個(gè)偏移量和控件的margin設(shè)置差不多,都是外間距的效果。如何不設(shè)置偏移量,前面的圖層就完全擋住了后面的圖層,從而也看不到后面的圖層效果了。比如上面的例子,Tab背景中的白色背景設(shè)置了android:bottom之后才能看到一點(diǎn)紅色背景。那么如果偏移量設(shè)為負(fù)值會(huì)怎么樣呢?經(jīng)過驗(yàn)證,偏移超出的部分會(huì)被截掉而看不到,不信可以自己試一下。有時(shí)候這很有用,比如當(dāng)我想顯示一個(gè)半圓的時(shí)候。

另外,關(guān)于item的用法,也做下總結(jié):

1.根節(jié)點(diǎn)不同時(shí),可設(shè)置的屬性是會(huì)不同的,比如selector下,可以設(shè)置一些狀態(tài)屬性,而在layer-list下,可以設(shè)置偏移量;

2.就算父節(jié)點(diǎn)同樣是selector,放在drawable目錄和放在color目錄下可用的屬性也會(huì)不同,比如drawable目錄下可用的屬性為android:drawable,在color目錄下可用的屬性為android:color;

3.item的子節(jié)點(diǎn)可以為任何類型的drawable類標(biāo)簽,除了上面例子中的shape、color、layer-list,也可以是selector,還有其他沒講過的bitmap、clip、scale、inset、transition、rotate、animated-rotate、lever-list等等。

結(jié)尾

layer-list篇就講到這里了,示例代碼也已經(jīng)更新放上github,地址:

https://github.com/keeganlee/kstyle.git

以上就是對(duì)Android Layer-list 樣式的示例整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)資料,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Android仿微信之界面導(dǎo)航篇(1)

    Android仿微信之界面導(dǎo)航篇(1)

    這篇文章主要為大家詳細(xì)介紹了Android仿微信之界面導(dǎo)航篇,教大家實(shí)現(xiàn)滑動(dòng)界面效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Android中使用PULL方式解析XML文件深入介紹

    Android中使用PULL方式解析XML文件深入介紹

    本文將詳細(xì)介紹Android如何使用PULL方式解析XML文件,在開發(fā)過程中會(huì)經(jīng)常使用到,有需要的朋友可以參考下
    2012-12-12
  • Android中子線程和UI線程通信詳解

    Android中子線程和UI線程通信詳解

    這篇文章主要介紹了Android中子線程和UI線程通信詳解,本文講解了一些概念、使用、及代碼實(shí)例,需要的朋友可以參考下
    2015-06-06
  • Android實(shí)現(xiàn)中軸旋轉(zhuǎn)特效 Android制作別樣的圖片瀏覽器

    Android實(shí)現(xiàn)中軸旋轉(zhuǎn)特效 Android制作別樣的圖片瀏覽器

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)中軸旋轉(zhuǎn)特效,制作別樣的圖片瀏覽器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 解決Android SearchView不顯示搜索icon的問題

    解決Android SearchView不顯示搜索icon的問題

    這篇文章主要介紹了解決Android SearchView不顯示搜索icon問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Android銀行卡掃描獲取銀行卡號(hào)

    Android銀行卡掃描獲取銀行卡號(hào)

    這篇文章主要為大家詳細(xì)介紹了Android銀行卡掃描獲取銀行卡號(hào)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Android Room的使用詳解

    Android Room的使用詳解

    這篇文章主要介紹了Android Room的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下
    2021-04-04
  • Android自定義View實(shí)現(xiàn)豎直跑馬燈效果案例解析

    Android自定義View實(shí)現(xiàn)豎直跑馬燈效果案例解析

    這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)豎直跑馬燈效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • android實(shí)現(xiàn)錄屏功能

    android實(shí)現(xiàn)錄屏功能

    這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)錄屏功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 多語言切換在Androidx失效的踩坑解決記錄

    多語言切換在Androidx失效的踩坑解決記錄

    這篇文章主要為大家介紹了多語言切換在Androidx失效的踩坑解決記錄詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01

最新評(píng)論