@(Alu)
昨天在給Activity
添加 theme
的時(shí)候绎签,修改theme
的background
遇到問(wèn)題震捣。
theme
的background
需要一個(gè)drawable
下的 xml
格式的文件來(lái)添加荔棉。
然后想在 drawable
里去放置圖標(biāo)在某個(gè)位置的時(shí)候,我們需要用到layer-list
這個(gè)標(biāo)簽蒿赢,在他的item
標(biāo)簽里去添加一個(gè)src =@drawable
屬性润樱,或者也可以在item
標(biāo)簽里直接添加一個(gè)bitmap
標(biāo)簽。如下所示:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 整體的背景顏色 -->
<item android:drawable="@color/white" />
<item>
<bitmap android:src="@drawable/welcome_page_logo"
android:gravity="bottom"/>
</item>
<item android:drawable="@drawable/welcome_page_logo"
android:gravity="bottom">
</item>
</layer-list>
這兩種方式都是可行的羡棵,但是如果我們想讓圖片平鋪也就是占滿每一個(gè)不同的android手機(jī)的屏幕底部壹若,應(yīng)該怎樣做?
對(duì)于 item
標(biāo)簽是沒(méi)有提供譬如 android:layout_width="match_parent"
這種屬性的皂冰,但是卻提供了android:width="0dp"
,當(dāng)然也有height
店展,也就是高度,但在這里有兩個(gè)問(wèn)題秃流,一是這里的 width
與height
屬性無(wú)法設(shè)置match_parent
,只能設(shè)置定長(zhǎng)赂蕴,當(dāng)然我們也可以給他設(shè)置一個(gè)特別大的長(zhǎng)度,讓他占滿屏幕舶胀,但是一點(diǎn)也不優(yōu)雅我覺(jué)得另一點(diǎn)呢概说,是這兩個(gè)屬性吧碧注,他不向下兼容,也就說(shuō)在低版本手機(jī)上糖赔,他不生效萍丐,看到這里,我有些懵逼放典,但是不急碉纺。
其實(shí)item
標(biāo)簽還有另外一種屬性:
android:right="0dp" android:left="0dp" android:bottom="0dp"
這屬性是什么意思呢,它代表margin
也就是距離父布局的距離刻撒,它神奇的地方在于可以拉伸或壓縮圖片骨田,就比如你的圖片寬度只有10dp,當(dāng)你設(shè)置right=0dp
與left=0dp
的時(shí)候声怔,就相當(dāng)于你設(shè)置了match_parent
一樣√停現(xiàn)在的代碼是這樣的:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 整體的背景顏色 -->
<item android:drawable="@color/white" />
<!--item 的right 等屬性可起到拉伸索引目標(biāo)的作用-->
<item android:drawable="@drawable/welcome_page_logo"
android:right="0dp"
android:left="0dp"
android:bottom="0dp"
android:gravity="bottom">
</item>
</layer-list>
目的好像達(dá)到了,但是測(cè)試過(guò)程中發(fā)現(xiàn)醋火,在6.0以下的設(shè)備悠汽,drawable
會(huì)被拉伸到占滿整個(gè)屏幕,查看文檔發(fā)現(xiàn):
意思是
drawable
會(huì)根據(jù)內(nèi)部的bitmap
元素來(lái)縮放貼合,如果不想讓它縮放芥驳,那就給bitmap
設(shè)置一個(gè)權(quán)重柿冲,到這里問(wèn)題基本解決了,對(duì)于6.0以上的設(shè)備兆旬,drawable里的權(quán)重值也會(huì)影響不讓他縮放問(wèn)題假抄,但從兼容性考慮這種方式放棄掉,改用添加子標(biāo)簽bitmap
方式:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 整體的背景顏色 -->
<item android:drawable="@color/white" />
<item >
<bitmap android:src="@drawable/welcome_page_logo"
android:gravity="bottom|fill_horizontal"
android:filter="true"/>
</item>
</layer-list>
至此丽猬,問(wèn)題解決宿饱。