2011-08-18 45 views
27

設置繪製的大小。我的XML看起來像這樣:如何我有在層列表設置可繪製的大小問題層列表

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/menu_drawable1"/> 
    <item android:drawable="@drawable/menu_drawable2"/>  
</layer-list> 

Drawable1大於Drawable2,因此Drawable2被調整大小。如何覆蓋這個並設置Drawable2的原始大小?我不希望它調整大小。我試着設置寬度和高度,但不起作用。另外drawables實際上並不是位圖,它們是selectos,所以我不能使用位圖技巧。

+0

我真的很想知道ü提到:)沒有ü意味着嵌入一個位圖到該項目的標籤位圖把戲? – Ready4Android

+0

我也發現這個問題還是很有意義的。儘管你寫在底部的技巧會有所幫助。 – PSIXO

回答

0

它看起來像我用「左」和「右」了,不過,這並不讓我自動設置圖像的確切大小有一半的解決方案。現在,我的XML看起來是這樣的:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/menu_drawable1"/> 
    <item android:drawable="@drawable/menu_drawable2" android:right="150dp"/>  
</layer-list> 
0

希望這將有助於: -
可以使用九個補丁繪製了menu_drawable2。你可以像menu_drawable2那樣在邊緣有透明區域。使用此透明區域指定九個補丁中的可伸展區域。

2

您可以使用嵌入標籤這一點。 例如

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/menu_drawable1"/> 
    <item> 
     <inset android:drawable="@drawable/menu_drawable2" 
      android:insetRight="50dp" 
      android:insetTop="50dp" 
      android:insetLeft="50dp" 
      android:insetBottom="50dp" /> 
    </item> 

你身邊menu_drawable2所以它不會像縮小這將創建墊襯。只需設置你需要的尺寸。

+0

如果你使用多個插入,但它似乎積累。確實很令人不安。 – JohnyTex

+1

注意,不適用於矢量 – djdance

3

您可以使用android:width and android:height帶有期望值的參數。

下面是示例繪製層列表和屏幕截圖。我使用從谷歌material icons繪製的矢量和自己的選擇器drawable。

原始circle.xml繪製形狀具有100dp X 100dp大小,而是進入drawable.xml我重寫此值由機器人到24dp X 24dp:寬度機器人:高度參數。

我希望這幫助!

drawable.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/circle" android:height="24dp" android:width="24dp"/> 
    <item android:drawable="@drawable/ic_accessibility_black_24dp"/> 
    <item android:drawable="@drawable/ic_http_white_24dp" android:gravity="center" android:top="-3dp" android:height="5dp" android:width="5dp"/> 
</layer-list> 

circle.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:innerRadius="20dp" android:shape="oval"> 
      <solid android:color="#CCC" /> 
      <size android:width="100dp" android:height="100dp"/> 
     </shape> 
    </item> 
</selector> 

screen shot

+8

免責聲明:寬度和高度是API 23+ – OldSchool4664

-3

我不知道它的工作或沒有,但你試圖從相互獨立的呢?

是這樣的:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/menu_drawable1"/> 
</layer-list> 
<layer-list> 
    <item android:drawable="@drawable/menu_drawable2"/>  
</layer-list> 

或者把別的東西愨他們像高度和寬度0dp空的佈局。