Je suis actuellement en utilisant un sélecteur de liste pour ma listview et l'a créé en utilisant layer-list. Ceci est mon code xml:Android drawable apparaît étiré pour API <23 et correctement pour API 23 et au-dessus
<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>
Quand je construis l'application, il apparaît bien sur api 23 et au-dessus.
Mais pour api 22 et au-dessous, il ressemble à ceci:
Je suis tombé sur ce poste Shape drawable in layer-list rendered incorrectly for APIs below 23 et compris que les attributs largeur et le travail en hauteur que pour api 23 et au dessus. Donc, j'ai ajouté la largeur et la hauteur à l'intérieur de la balise de taille comme ceci:
<item android:drawable="@drawable/menu_arrow"
android:top="5dp">
<size android:height="36dp" android:width="18dp"/>
</item>
Mais l'image semble toujours étirée. Quel attribut est nécessaire pour api 22 et ci-dessous pour rendre l'aspect dessinable uniforme pour toutes les versions?
vous pouvez créer drawable, drawable-v21 et drawable-v23 et éditer pour chaque type –
ou se référer: https://stackoverflow.com/questions/35083002/android-item-size-in-layer-list/38608066# 38608066 –
J'ai déjà le fichier xml pour chaque type, les codes pour l'API 22 est à l'intérieur du dossier v21 – nexus