2017-08-15 121 views
1

我目前使用列表視圖的列表選擇器,並使用層列表創建它。這是我的XML代碼:安卓繪製似乎拉伸了API <23和正確的API 23和以上

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/menu_arrow" 
    android:width="18dp" 
    android:height="36dp" 
    android:top="5dp"/> 

<item android:top="0dp" android:left="5dp" android:bottom="0dp" android:right="0dp"> 
    <shape android:shape="rectangle"> 
     <solid android:color="@android:color/transparent"/> 
    </shape> 
</item> 

當我構建應用程序,它出現在API 23及以上的罰款。

api 23

但對於API 22及以下,它看起來像這樣:

api 22

我碰到這個職位Shape drawable in layer-list rendered incorrectly for APIs below 23並理解這些屬性的寬度和高度的工作只爲API 23以上。所以我增加了尺寸標籤裏面的寬度和高度,如下所示:

<item android:drawable="@drawable/menu_arrow" 
    android:top="5dp"> 
    <size android:height="36dp" android:width="18dp"/> 
    </item> 

但圖像仍然顯得拉長。 api 22及以下版本需要哪些屬性才能使所有版本的可繪製外觀一致?

+0

您可以爲每種類型 –

+0

創建drawable,drawable-v21和drawable-v23並編輯或者參考:https://stackoverflow.com/questions/35083002/android-item-size-in-layer-list/38608066# 38608066 –

+0

我已經有每種類型的xml文件,api 22的代碼位於v21文件夾內 – nexus

回答

1

我設法解決它以下列方式:

<item android:drawable ="@drawable/menu_arrow" 
    android:right="285dp" 
    android:top="5dp" 
    android:bottom="10dp"/> 

我猜API < 23,我們需要調整使用頂部繪製,右,下值和API> 23我們可以用寬度和高度。

相關問題