Android Utilisation d'images en tant qu'arrière-plan dans CardView (problèmes liés aux périphériques pré-Lollipop)


Exemple

Lorsque vous utilisez Image / Couleur comme arrière-plan dans une vue CardView, vous risquez d'obtenir de légers bourrelets blancs (si la couleur par défaut de la carte est le blanc) sur les bords. Cela est dû aux coins arrondis par défaut dans la vue Carte. Voici comment éviter ces marges dans les dispositifs de pré-sucette.

Nous devons utiliser un attribut card_view:cardPreventCornerOverlap="false" dans CardView. 1). En XML, utilisez l'extrait de code suivant.

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    card_view:cardPreventCornerOverlap="false"
    android:layout_height="wrap_content"> 
      <ImageView
            android:id="@+id/row_wallet_redeem_img"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:scaleType="centerCrop"
            android:src="@drawable/bg_image" />

</android.support.v7.widget.CardView>
  1. En Java comme ceci cardView.setPreventCornerOverlap(false) .

Cela supprime un bourrage indésirable sur les bords de la carte. Voici quelques exemples visuels liés à cette implémentation.

1 carte avec fond d'image dans API 21 (parfaitement bien) Carte avec fond d'image dans l'API 21

2 carte avec fond d'image dans l'API 19 sans attribut (notez les rembourrages autour de l'image) Carte avec fond d'image dans l'API 19 sans attribut

3 carte FIXED avec arrière-plan d'image dans l'API 19 avec l'attribut cardView.setPreventCornerOverlap(false) (problème désormais résolu) Carte FIXE avec arrière-plan d'image dans l'API 19 avec attribut

Lisez aussi à ce sujet sur Documentation ici
Message SOF original ici