J'ai trouvé une bonne solution avec celle-ci:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- This is the line -->
<item android:top="-1dp" android:right="-1dp" android:left="-1dp">
<shape>
<solid android:color="@android:color/transparent" />
<stroke android:width="1dp" android:color="#ffffff" />
</shape>
</item>
</layer-list>
Cela fonctionne bien au cas où vous auriez besoin d'un fond transparent mais toujours d'une couleur de trait ouverte (dans mon cas, je n'avais besoin que d'une ligne de fond). Si vous avez besoin d'une couleur d'arrière-plan, vous pouvez ajouter une couleur de forme unie comme dans la réponse Maragues.
MODIFIER 1
Parfois, pour les appareils à haute densité, l'utilisation de faibles valeurs de pendage peut se terminer par des courses ou des distances très minces ou invisibles. Cela peut également vous arriver lors de la définition des diviseurs ListView.
La solution de contournement la plus simple consiste à utiliser une distance de 1px au lieu de 1dp. Cela rendra la ligne toujours visible à toutes les densités. La meilleure solution serait de créer des ressources de dimension pour chaque densité, afin d'obtenir la meilleure taille pour chaque appareil.
Modifier 2
Amusant, mais j'ai essayé de l'utiliser 6 ans plus tard et je n'arrive pas à obtenir un bon résultat sur les appareils Lollipop.
La solution actuelle est probablement d'utiliser 9-patch. Android aurait dû apporter une solution simple à ce problème après tout ce temps.