Android drawable 对于 API <23 和 API 23 及更高版本显示为拉伸
Posted
技术标签:
【中文标题】Android drawable 对于 API <23 和 API 23 及更高版本显示为拉伸【英文标题】:Android drawable appears stretched for API <23 and correctly for API 23 and above 【发布时间】:2018-01-22 23:26:39 【问题描述】:我目前正在为我的列表视图使用列表选择器,并使用图层列表创建它。这是我的 xml 代码:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/menu_arrow"
android:
android:
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: android:/>
</item>
但图像仍显得拉伸。 api 22 及以下版本需要什么属性才能使所有版本的drawable 看起来一致?
【问题讨论】:
你可以为每种类型创建drawable、drawable-v21和drawable-v23和Edit 或参考:***.com/questions/35083002/… 我已经有了每种类型的 xml 文件,api 22 的代码在 v21 文件夹中 你能发布 item_view.xml 吗? 尝试将 android:layout_ 设置为 listview 的 item_view 【参考方案1】:我设法通过以下方式解决它:
<item android:drawable ="@drawable/menu_arrow"
android:right="285dp"
android:top="5dp"
android:bottom="10dp"/>
我猜对于 api 23,我们可以使用宽度和高度。
【讨论】:
以上是关于Android drawable 对于 API <23 和 API 23 及更高版本显示为拉伸的主要内容,如果未能解决你的问题,请参考以下文章