安卓绘制似乎拉伸了API <23和正确的API 23和以上
问题描述:
我目前使用列表视图的列表选择器,并使用层列表创建它。这是我的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 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及以下版本需要哪些属性才能使所有版本的可绘制外观一致?
答
我设法解决它以下列方式:
<item android:drawable ="@drawable/menu_arrow"
android:right="285dp"
android:top="5dp"
android:bottom="10dp"/>
我猜API < 23,我们需要调整使用顶部绘制,右,下值和API> 23我们可以用宽度和高度。
您可以为每种类型 –
创建drawable,drawable-v21和drawable-v23并编辑或者参考:https://*.com/questions/35083002/android-item-size-in-layer-list/38608066# 38608066 –
我已经有每种类型的xml文件,api 22的代码位于v21文件夹内 – nexus