2017-08-15 126 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我们可以用宽度和高度。

相关问题