我目前正在使用listview的列表选择器并使用layer-list创建它。这是我的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,并了解到属性width和height仅适用于api 23及以上版本。所以我在尺寸标签内添加了宽度和高度,如下所示:
<item android:drawable="@drawable/menu_arrow"
android:top="5dp">
<size android:height="36dp" android:width="18dp"/>
</item>
但是图像仍然显得拉长。 api 22及以下需要什么属性才能使所有版本的可绘制外观均匀?
答案 0 :(得分:0)
我设法通过以下方式解决它:
<item android:drawable ="@drawable/menu_arrow"
android:right="285dp"
android:top="5dp"
android:bottom="10dp"/>
我想api&lt;我们需要使用top,right,bottom值来调整drawable的大小,并且对于api> 23我们可以使用宽度和高度。