【问题标题】:Android drawable appears stretched for API <23 and correctly for API 23 and aboveAndroid drawable 对于 API <23 和 API 23 及更高版本显示为拉伸
【发布时间】: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: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 及以下版本需要什么属性才能使所有版本的drawable 看起来一致?

【问题讨论】:

  • 你可以为每种类型创建drawable、drawable-v21和drawable-v23和Edit
  • 我已经有了每种类型的 xml 文件,api 22 的代码在 v21 文件夹中
  • 你能发布 item_view.xml 吗?
  • 尝试将 android:layout_width="wrap_content" 设置为 listview 的 item_view

标签: android xml android-5.0-lollipop drawable layer-list


【解决方案1】:

我设法通过以下方式解决它:

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

我猜对于 api 23,我们可以使用宽度和高度。

【讨论】:

    猜你喜欢
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 2020-04-07
    • 2019-02-13
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多